2015-08-08 97 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