2016-03-25 16 views
0

Ich bin nach einem Tutorial Gesundheit Kit gefunden hereSwift 2.2 HealthKit - Der Anruf kann werfen, aber es ist nicht mit ‚versuchen‘ markiert und die Fehler behandelt nicht

Es ist eine ältere Version von Swift mit (1.2) und ich versuche, es auf die neueste Version zu konvertieren (Swift 2.2 als dies geschrieben wurde)

der Fehler zeigt an, dass ich brauche eine do, catch, and try Handhabung zu tun, aber es ist immer noch die gleichen Fehler zu werfen Call can throw, but it is not marked with 'try' and the error not handled?

Ich habe meinen Versuch unten hinzugefügt. Muss ich mit Swift 2.2 immer noch den Fehler mit der letzten if error != nil überprüfen? Oder würde das in der do, catch, try Behandlung jetzt gehandhabt werden?

Antwort

5

Sie müssen implementieren versuchen, fangen Swift2 Fehlerbehandlungsmethode, wenn eine Methode auslöst. Sie sollten immer mit den Fehlern umgehen. Wenn Sie sicher sind, dass es nie scheitern wird, können Sie versuchen! und wenn Sie nicht mit dem Fehler umgehen möchten, können Sie versuchen?

Versuchen wie folgt aus:

var age: Int? 
do { 
    // 1. Request birthday and calculate age 
    let birthDay = try healthKitStore.dateOfBirth() 
    age = NSCalendar.currentCalendar().components(.Year, fromDate: birthDay, toDate: NSDate(), options: []).year 
} catch let error as NSError { 
    print(error.localizedDescription) 
} 
+0

Dieses regelte es, dank Leo! War das so einfach zu beheben? Ich konnte die Docs nicht verstehen, wann und wo ich die try-Methode verwenden sollte (manchmal sehe ich es auch gezwungen, zu versuchen!) Gibt es eine gute Quelle, um das besser zu verstehen? – Simon