我觉得我错过了一些显而易见的东西,但我是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"];
答案 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)
使用NSMutableDictionary
。 NSDictionary
不可编辑。
NSMutableDictionary *tempDictionary = [[NSMutableDictionary alloc] init];
Boolean overObjectYES = NO;
Boolean overObjectNo = NO;
[tempDictionary setValue:[NSNumber numberWithBool:overObjectYES] forKey:@"overObject"];