Sim*_*mon 0 ios swift healthkit swift2.2
我正在按照此处的健康工具包教程进行操作
它使用的是旧版本的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)")
}
Run Code Online (Sandbox Code Playgroud)
你需要实现在方法抛出时尝试捕获Swift2错误处理方法.你应该总是处理错误.如果您确定它永远不会失败,您可以尝试使用!如果您不想处理错误,可以使用试试吗?
试试这样:
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)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
255 次 |
| 最近记录: |