Я следую руководству по аптечке, которое можно найти здесь.
Он использует более старую версию Swift (1.2), и я пытаюсь преобразовать ее в последнюю версию (Swift 2.2 на момент написания этой статьи).
Ошибка указывает, что мне нужно выполнить обработку do, catch, and try
, но она по-прежнему выдает ту же ошибку Call can throw, but it is not marked with 'try' and the error not handled
?
Я добавил свою попытку ниже. В Swift 2.2 мне все еще нужно проверять наличие ошибки, используя последнюю версию if error != nil
? Или теперь это будет обрабатываться в do, catch, try
?
var error:NSError?
var age:Int?
// 1. Request birthday and calculate age
if let birthDay = healthKitStore.dateOfBirth()
{
do {
let today = NSDate()
let calendar = NSCalendar.currentCalendar()
let differenceComponents = NSCalendar.currentCalendar().components(.CalendarUnitYear, fromDate: birthDay, toDate: today, options: NSCalendarOptions(0) )
try! age = differenceComponents.year
} catch {
print(error)
}
}
if error != nil {
print("Error reading Birthday: \(error)")
}