“这个类不是密钥值编码兼容的密钥”

时间:2012-11-15 03:56:15

标签: objective-c ios

我觉得我错过了一些显而易见的东西,但我是obj-c的新手所以也许这只是我不知道的事情。

我在运行时收到异常错误...

  

NSDictionaryI 0x9d384d0> setValue:forUndefinedKey:]:这个类不是   密钥overObject的密钥值编码兼容。'

在此代码的第4行......

NSDictionary *tempDictionary = [[NSDictionary alloc] init];

    Boolean overObjectYES = NO;
    Boolean overObjectNo = NO;

    [tempDictionary setValue:[NSNumber numberWithBool:overObjectYES] forKey:@"overObject"];

3 个答案:

答案 0 :(得分:9)

我认为这是NSDictionary表示NSMutableDictionary时的结合,而setValue通常被认为更合适时发送邮件setObject。有关详细信息,请参阅此问题:

NSDictionary setValue:forKey: -- getting "this class is not key value coding-compliant for the key"

答案 1 :(得分:3)

您的意思是tempDictionary可变字典吗?如果是,请将其声明为:

NSMutableDictionary *tempDictionary = [[NSMutableDictionary alloc] init];

答案 2 :(得分:1)

使用NSMutableDictionaryNSDictionary不可编辑。

NSMutableDictionary *tempDictionary = [[NSMutableDictionary alloc] init];
Boolean overObjectYES = NO;
Boolean overObjectNo = NO;

[tempDictionary setValue:[NSNumber numberWithBool:overObjectYES] forKey:@"overObject"];