2015-08-08 108 views
0

我在斯威夫特为1.2〜2.0的代码迁移一些麻烦,在这里是被我所用跨越:雨燕2.0迁移代码错误

我已经导入写在雨燕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() 
     } 
    } 

和2警告,XCODE它扑灭是

  1. '二进制运算符 '=' 不能被应用于类型的操作数' NSPersistentStore! '和'零'

  2. '打电话可以扔,但它没有标记'尝试',并且错误没有处理

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

感谢您的帮助提前。 PS:对不起我的英文不好,希望这是可以理解的。伊万。欢呼声, 欢呼声,伊万。

回答

1

雨燕2.0addPersistentStoreWithType返回一个非可选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) 
} 
+0

喔,你是对的。我完全错过了这一点。感谢你们对我的帮助。 –

+0

不客气。请点击旁边的复选标记接受我的答案,将其变为绿色。 – vacawama

+0

您可以观看WWDC 15 [Swift中的新功能](https://developer.apple.com/videos/wwdc/2015/?id=106) 开始于28:20关于Swift 2.0中的错误处理 – hash3r