我在Swift 1.2到2.0的代码迁移方面遇到了一些麻烦,这就是我所遇到的:
我已经导入了一些用Swift 1.2编写的类,并且我一直在修改代码到Swift 2.0,因为Xcode一直警告我要改变一些新功能......到目前为止一直很好。
现在我被这块代码所困扰,我无法扭转它,无论我做什么,我都无法解决它,现在我需要你的帮助。
代码如下:
var storeCoordinator:NSPersistentStoreCoordinator = NSPersistentStoreCoordinator(managedObjectModel: managedModel)
if storeCoordinator.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: url, options: nil) != nil{
if error != nil{
print(error!.localizedDescription)
abort()
}
}
和Xcode推出的2个警告是
'二元运算符'!='不能应用于'NSPersistentStore'和'nil'类型的操作数
'来电可以投掷,但没有标记'尝试'并且未处理错误
在第二个方面,我可以做一个简单的do {... try / catch ...}方法并将其翻过来,但我仍然坚持使用第一个方法。
提前感谢您的帮助。
PS:抱歉我的英语不好,希望这是可以理解的。 欢呼,伊万。答案 0 :(得分:1)
在 Swift 2.0 中,addPersistentStoreWithType
会返回一个非可选的NSPersistentStore
,因此您无法检查nil
。如果发生错误,则抛出一个必须捕获的错误:
var storeCoordinator = NSPersistentStoreCoordinator(managedObjectModel: managedModel)
do {
try storeCoordinator.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: url, options: nil)
}
catch let error as NSError {
print(error.localizedDescription)
}