0

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

我现在决定再添加一个不是从名为checkMark. 我也将它添加到此方法中。问题是每当我尝试checkMark在这样的方法中设置属性时:[s setValue:[NSNumber numberWithInt:check] forKey:@"checked"];作为s一个managedObject我得到一个错误说"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];
    }
}
4

1 回答 1

0

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

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

基本上这意味着它必须有一个 settersetChecked:和一个 getter checked。通常的事情是拥有一个综合了该 setter 和 getter 的属性。

顺便说一句,日志消息正在谈论实体课程这一事实向我表明,您调用dictionary并转换为 NSDictionary 的东西实际上可能根本不是字典,但可能是其他东西,即 NSManagedObject。只是一个猜测......你可能会做一些日志记录/断点来看看这里到底发生了什么。

于 2012-11-28T04:57:59.930 回答