2012-11-28 52 views
0

我正在制作一个iPhone应用程序,从Web服务获取数据并将其存储在核心数据中。所有这些属性都有在字典中标识它们的键。我有一个NSObject类的所有属性。关键价值财产帮助IOS

我现在决定添加一个不是从一个叫做checkMark的Web服务获得的属性。我也将其添加到此方法。问题是每当我尝试使用像这样的方法设置checkMark属性时:[s setValue:[NSNumber numberWithInt:check] forKey:@"checked"];smanagedObject我收到一个错误,说"the entity Course is not key value coding-compliant for the key "checked"。我该如何解决?

- (id)initWithDictionary:(NSDictionary *)dictionary 
{ 
    self = [super init]; 
    if (self) { 
     // Set the property values 
     _iD = [[dictionary valueForKey:@"Id"] intValue]; 
     _isCurrent = [[dictionary valueForKey:@"IsCurrent"] boolValue]; 
     _checkMark = [[dictionary valueForKey:@"checked"] intValue]; 
    } 
} 
+0

复选标记属性的类型是什么 –

+0

什么是's'?它是字典还是别的? –

+0

这意味着在字典中没有任何键被称为“已检查” – rakeshNS

回答

0

您需要为“已检查”键为密码编码实体课程键值。

https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/KeyValueCoding/Articles/Compliant.html

基本上,这意味着它必须有一个设置器setChecked:和吸气剂checked。通常情况下,拥有一个包含该setter和getter的综合的属性。

顺便说一句,事实上日志消息都在谈论一个实体课程建议,我认为你在呼唤dictionary和铸造作为一个NSDictionary的东西实际上可能不是一个字典,但可能是别的东西,即一个NSManagedObject。只是一个猜测......你可能会做一些记录/突破,看看这里发生了什么。

+0

是否有任何方法来设置属性而不使用密钥。我可以做一些像[s setValue:[NSNumber numberWithInt:check]而不使用密钥? – Joe24