我有一个项目并在我的项目中使用此代码:
if storeCoordinator.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: url, options: nil, error:&error ) != nil{
if error != nil{
print(error!.localizedDescription)
abort()
}
}
但在swift 2.2中,此代码有错误... xcode显示此错误:
通话中的额外参数'错误'
,另一个代码是:
class func saveManagedObjectContext(managedObjectContext:NSManagedObjectContext)->Bool{
if managedObjectContext.save(nil){
return true
}else{
return false
}
}
在这些行中有一些错误:
调用可以抛出,但没有标记为'try',错误不是 处理。
和
传递给不带参数的调用的参数。
答案 0 :(得分:0)
您需要在do / try / catch处理程序中将addPersistentSore...
的调用括起来:
do {
myNewStore = try storeCoordinator.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: url, options: nil)
// other code on success ....
}
catch let error as NSError {
Swift.print(error!.localizedDescription)
abort()
}
您可以阅读Swifts throw / catch错误处理,例如:https://www.hackingwithswift.com/new-syntax-swift-2-error-handling-try-catch
另请参阅Apples文档https://developer.apple.com/reference/coredata/nspersistentstorecoordinator/1468860-addpersistentstore(注意它是Swift 3.0.1)