【发布时间】:2015-08-08 21:14:25
【问题描述】:
我刚刚更新到 XCode 7 的 beta 5,现在在以下 Swift 代码中遇到编译错误:
MagicalRecord.saveWithBlock({ (localContext : NSManagedObjectContext!) in
// ... Save models here ...
}, completion: { (success : Bool, error : NSError!) in
// ... Handle completion here ...
})
在以前的 XCode 7 版本下,编译得很好,但我现在得到:
无法使用类型为“((NSManagedObjectContext!)->(),完成:(Bool,NSError!)->())”的参数列表调用“saveWithBlock”
我尝试将-> Void(当我尝试重新添加调用时自动完成)和-> Void! 添加到参数中,但看到相同的错误。
这是 XCode 版本中的语言更改还是错误?
编辑(5.42pm ETC 08/08/2015):在没有完成处理程序的情况下调用 savedWithBlock 似乎可以编译:
MagicalRecord.saveWithBlock { (localContext: NSManagedObjectContext!) -> Void in
// ... Save models here ...
}
编辑(8.32am ETC 08/11/2015):根据@Gerd Castan 的建议,我还尝试将完成参数更改为:
completion: { (success : Bool, error : ErrorType!)
和
completion: { (success : ObjCBool, error : ErrorType!)
两者都给出了相同的错误。
【问题讨论】:
-
您使用的是哪个分支/pod? (我正在研究 MagicalRecord,但我不清楚哪个分支与 Xcode 7 兼容……我猜是 3.0?)
-
我一直在使用 master 分支(目前为 2.3.0),它对我来说工作正常。你有问题吗?
-
不,还没有尝试过——做一些研究看看它在 Swift 2 环境中的工作情况,特别是因为所有文档都在 Objective C 中......
-
好的,我可以推荐只使用 master,Swift 语法需要做一些翻译,但自动完成功能在这个测试版中非常好。如有任何问题,请随时通过 Twitter 联系我(链接在我的个人资料中)。
标签: ios xcode swift magicalrecord