Key Value Property帮助IOS

时间:2012-11-28 04:52:31

标签: ios cocoa

我正在制作一个iPhone应用程序,它从Web服务获取数据并将其存储在Core Data中。所有这些属性都有键在字典中标识它们。我有一个NSObject类的所有属性。

我现在决定再添加一个名为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];
    }
}

1 个答案:

答案 0 :(得分:0)

您需要使“已检查”键的实体课程键值符合编码。

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

基本上这意味着它必须有一个setter setChecked:和一个getter checked。通常的情况是拥有一个具有该setter和getter的合成的属性。

顺便提一下,日志消息正在谈论实体课程这一事实告诉我,你正在调用dictionary并作为NSDictionary投射的东西实际上根本不是字典,但可能是某种东西否则,即NSManagedObject。只是一个猜测...你可能会做一些记录/断点,看看这里发生了什么。