2015-06-13 105 views
10

我最近將Xcode更新爲新的7.0測試版。二元運算符'&&'不能應用於兩個Bool操作數

我與助理進行了遷移,但還有一些問題。

func saveContext() { 
    if let moc = self.managedObjectContext { 
     var error: NSError? = nil 
     if moc.hasChanges && !moc.save() { 
      NSLog("Unresolved error \(error), \(error!.userInfo)") 
      abort() 
     } 
    } 
} 

在第4行有4個問題: 第一個是:

二進制運算符 '& &' 不能應用到兩個布爾操作數

第二個是:

打電話可以扔,但它我s沒有標記'嘗試',錯誤沒有處理

有人可以幫我嗎?

+1

由於程序員很可能會在這個令人困惑的錯誤消息中看到谷歌,所以這個問題的標題要比副本要好得多。作爲參考,以下聲明給出了相同的錯誤消息:func test(){ return true && true },請注意函數聲明爲void,即 - > Bool丟失。 – ragnarius

回答

2

這裏有一些代碼應該做的伎倆。請記住在嘗試之前使用throw語句並抓住它們。

func saveContext() { 
    if let moc = self.managedObjectContext { 
     if moc.hasChanges { 
      do { 
       try moc.save() 
      } catch { 
       NSLog("Unresolved error \(error)") 
       abort() 
      } 
     } 
    } 
} 
+0

我現在得到以下錯誤:「類型'ErrorType.Protocol'不符合協議'ErrorType'」 –

+0

我編輯了代碼。你可以嘗試最新的更新? – Laurent

+0

是的,現在它工作正常:)非常感謝你! –

相關問題