xcode 调用中的 Swift 2 额外参数“错误”
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/31113479/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Swift 2 Extra argument ' error' in call
提问by markutus
Hi i'm updating my project from Swift to Swift2 with Xcode 7 and i'm getting this CoreData error :
嗨,我正在使用 Xcode 7 将我的项目从 Swift 更新到 Swift2,但出现此 CoreData 错误:
Extra argument 'error' in call
in this line
在这一行
if coordinator!.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: url, options: nil, error: &error) == nil {
EDIT
编辑
this is my code:
这是我的代码:
lazy var persistentStoreCoordinator: NSPersistentStoreCoordinator? = {
// The persistent store coordinator for the application. This implementation creates and return a coordinator, having added the store for the application to it. This property is optional since there are legitimate error conditions that could cause the creation of the store to fail.
// Create the coordinator and store
var coordinator: NSPersistentStoreCoordinator? = NSPersistentStoreCoordinator(managedObjectModel: self.managedObjectModel)
let url = self.applicationDocumentsDirectory.URLByAppendingPathComponent("Xipe_Tech.sqlite")
var error: NSError? = nil
var failureReason = "There was an error creating or loading the application's saved data."
do {
try coordinator!.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: url, options: nil)
coordinator = nil
// Report any error we got.
var dict = [String: AnyObject]()
dict[NSLocalizedDescriptionKey] = "Failed to initialize the application's saved data"
dict[NSLocalizedFailureReasonErrorKey] = failureReason
dict[NSUnderlyingErrorKey] = error
error = NSError(domain: "YOUR_ERROR_DOMAIN", code: 9999, userInfo: dict)
// Replace this with code to handle the error appropriately.
// abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.
NSLog("Unresolved error \(error), \(error!.userInfo)")
abort()
} catch let error as NSError {
print(error.localizedDescription)
}
return coordinator
}()
now i get error in first line how can i fix that ?? Thanks
现在我在第一行出现错误我该如何解决??谢谢
回答by agy
Swift 2 now provides a try/catch mechanism, and Cocoa APIs have been rewritten to use this instead rather than returning the error the traditional Objective C way.
Swift 2 现在提供了一个 try/catch 机制,并且 Cocoa API 已经被重写以使用它而不是传统的 Objective C 方式返回错误。
You should now do this:
你现在应该这样做:
do {
try coordinator!.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: url, options: nil)
} catch let error as NSError {
print(error.localizedDescription)
}
回答by markutus
anyone else having this issue just use this below. I had the same issue. Apple replaced the original "if coordinator!.addPersistentStoreWithType" with a do try catch phrase.
其他有这个问题的人只需在下面使用这个。我遇到过同样的问题。Apple 用 do try 口号替换了原来的“if coordinator!.addPersistentStoreWithType”。
do {
try coordinator!.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: url, options: nil)
} catch {
// Report any error we got.
var dict = [String: AnyObject]()
dict[NSLocalizedDescriptionKey] = "Failed to initialize the application's saved data"
dict[NSLocalizedFailureReasonErrorKey] = failureReason
dict[NSUnderlyingErrorKey] = error as NSError
let wrappedError = NSError(domain: "YOUR_ERROR_DOMAIN", code: 9999, userInfo: dict)
// Replace this with code to handle the error appropriately.
// abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.
NSLog("Unresolved error \(wrappedError), \(wrappedError.userInfo)")
abort()
}
return coordinator
}()