我正在尝试更新我的项目到Swift 3,其中有核心数据。我遇到了严重的错误,我真的不知道发生了什么。我的核心数据模型具有以下属性
@NSManaged var name: String?
@NSManaged var count: NSNumber
@NSManaged var isDelivered: NSNumber
我可以设置除isDelivered以外的任何其他属性。当我试着用
myobject.isDelivered = true
我在控制台上得到了跟踪错误。
由于“NSInvalidArgumentException”异常终止应用程序,原因:'-MyModel setDelivered::未识别的选择器发送到实例0x6000000d3780‘
看起来Xcode正在将is
部件从isDelivered
属性中删除,该属性使应用程序崩溃。除了更新我的模型之外,我还能做些什么来防止这种情况发生吗?谢谢。
发布于 2016-07-21 07:41:06
是个虫子。这是个非常令人困惑的错误。对于任何访问这个问题的人,这里是我在苹果论坛上找到的答案。
目前版本的Swift 3测试版似乎在处理以"is“为前缀的属性方面存在一些缺陷。
https://forums.developer.apple.com/thread/50863
答案来自用户 OOPer
避免在属性名称中使用"is“,或者如果不能,请尝试如下:
newWriter.setValue(true, forKey: "favorite")
(更新)尝试在属性中添加@objc名称:
@NSManaged @objc(isFavorite) var isFavorite: Bool
https://stackoverflow.com/questions/38497492
复制相似问题