Objective-C:在核心数据中设置布尔值

时间:2017-04-27 21:25:40

标签: ios objective-c nsunknownkeyexception

在我的数据模型中,在一个实体中,我有一个布尔属性。在xcmod​​eldatad文件中,它列为:

need sync Boolean.在NSmanagedobject文件中,如下所示:

.h file: @property (nonatomic, strong) NSNumber *needsync;//bool
.m file @dynamic needsync;

在编辑后保存记录时,我使用了以前多次使用过的代码:

[list setValue:@ 0 forKey:@“needsync”];

然而,当它到达

这一行时它会抛出异常
NSUnknownKeyException', reason: '[<__NSCFString 0x17409c4d0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key need sync.'

这真令人困惑,我想知道是否有人能发现错误或者之前发生过这种情况。

谢谢。

2 个答案:

答案 0 :(得分:1)

再次检查您的代码。

崩溃日志显示您的对象是NSString,而不是YourList对象,因此,它没有needync property =&gt;崩溃。

答案 1 :(得分:0)

您的list词典的类型是什么?是NSMutableDictionary<NSString*, NSNumber*>吗?如果是这样,那么您的 实体属性 属性声明 之间的类型可能不匹配。

或者,如果您的词典属于NSMutableDictionary<NSNumber*, NSNumber*>类型,请尝试以下操作:

[list setObject:@0 forKey:needsync]; // don't make `needsync` a NSString* object, it's already an object type (NSNumber*)