2015-08-08 42 views
1

編譯我剛剛更新到了XCode 7的測試版5,我現在在以下斯威夫特代碼得到一個compliation錯誤:MagicalRecord saveWithBlock使用沒有根據的XCode 7測試版5

MagicalRecord.saveWithBlock({ (localContext : NSManagedObjectContext!) in 
    // ... Save models here ... 
    }, completion: { (success : Bool, error : NSError!) in 
    // ... Handle completion here ... 
}) 

在以前的版本的XCode 7 ,該編譯罰款,但現在我越來越:

不能援引 'saveWithBlock' 類型的參數列表「((的NSManagedObjectContext) - >(),完成:!(BOOL,NSError) - > ())'

我已經嘗試在參數中添加-> Void(當我嘗試重新添加調用時自動完成)和-> Void!,但看到相同的錯誤。

這是一個語言更改或此XCode構建中的錯誤?

編輯(下午5點42分ETC 2015年8月8日):調用savedWithBlock沒有完成處理程序出現編譯OK:

MagicalRecord.saveWithBlock { (localContext: NSManagedObjectContext!) -> Void in 
    // ... Save models here ... 
} 

編輯(上午8時32分ETC 2015年8月11日):通過@Gerd卡斯坦以下建議,我也試圖改變完成參數:

completion: { (success : Bool, error : ErrorType!) 

completion: { (success : ObjCBool, error : ErrorType!) 

兩者都給出了相同的錯誤。

+0

您使用哪個分支/吊艙? (我正在調查MagicalRecord,但是我不清楚哪個分支與Xcode 7兼容...我猜3.0)? – Zac

+0

我一直在使用master分支(目前在2.3.0),它一直工作正常我。你有問題嗎? –

+0

不,還沒有嘗試過 - 做一點研究,看看它在Swift 2環境中工作的效果如何,特別是因爲所有的文檔都在Objective C中... – Zac

回答

1

這似乎是固定的XCode 7測試6.語法:

MagicalRecord.saveWithBlock({ (localContext: NSManagedObjectContext!) -> Void in 
    // Save model here 
}) { (success: Bool, error: NSError!) -> Void in 
    // Handle result here 
} 

編譯沒有錯誤。

0

Apple用ErrorType替換了NSError。

用ErrorType替換您自己的NSError顯式用法以避免此類編譯器錯誤。

+0

不幸的是,在做出更改後,我仍然看到相同的錯誤。 –

+0

很抱歉聽到這個消息。我能夠通過這種方式修復幾個類似的編譯器錯誤。 –

+0

感謝您的嘗試:) –

相關問題