Swift 2.0迁移代码错误

时间:2015-08-08 10:41:24

标签: ios xcode swift

我在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个警告是

  1. '二元运算符'!='不能应用于'NSPersistentStore'和'nil'类型的操作数

  2. '来电可以投掷,但没有标记'尝试'并且未处理错误

  3. 在第二个方面,我可以做一个简单的do {... try / catch ...}方法并将其翻过来,但我仍然坚持使用第一个方法。

    提前感谢您的帮助。

    PS:抱歉我的英语不好,希望这是可以理解的。 欢呼,伊万。

1 个答案:

答案 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)
}