【发布时间】:2016-07-21 07:17:52
【问题描述】:
我正在尝试将我的项目更新为具有核心数据的 Swift 3。我遇到了严重的错误,我真的不知道发生了什么。我的核心数据模型具有以下属性
@NSManaged var name: String?
@NSManaged var count: NSNumber
@NSManaged var isDelivered: NSNumber
我可以设置任何其他属性,但 isDelivered 除外。当我尝试使用
myobject.isDelivered = true
我在控制台上收到以下错误。
由于未捕获的异常而终止应用程序 'NSInvalidArgumentException',原因:'-[MyModel setDelivered:]: 无法识别的选择器发送到实例 0x6000000d3780'
看起来 Xcode 正在从 isDelivered 属性中删除 is 部分,这会使应用程序崩溃。除了更新我的模型之外,我还能做些什么来防止这种情况发生?谢谢。
【问题讨论】:
-
你试过
myObject.isDelivered = NSNumber(booleanLiteral: true)吗? -
结果相同。从日志中可以看出,消息应该发送到
isDelivered而不是Delivered。发生了一些奇怪的事情 -
尝试将 isDelivered 设为布尔值和可选值。