Din*_*rne 3 cocoa objective-c nsdictionary key-value-coding
RestKit当我@在键中使用带符号的JSON响应时遇到问题.经过一些调试后,问题似乎正在发生__NSCFDictionary
所以我尝试了以下简单的代码:
NSArray *keys = [NSArray arrayWithObjects:@"@key1", @"@key2", nil];
NSArray *objects = [NSArray arrayWithObjects:@"value1", @"value2", nil];
NSDictionary *dictionary = [NSDictionary dictionaryWithObjects:objects
forKeys:keys];
for (id key in dictionary) {
NSLog(@"key: %@, value: %@", key, [dictionary valueForKey:key]);
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
[<__ NSDictionaryI 0x618000268ac0> valueForUndefinedKey:]:此类不是密钥key1的密钥值编码兼容.
有人可以解释为什么我收到此错误,如果有任何解决方法?
Jos*_*ell 12
你不能@在键中使用valueForKey:.在这种情况下NSDictionary 有一些记录但可能是意外的行为:它剥离@并[super valueForKey:]使用新密钥调用.这会查找对象上的键,而不是字典中的内容.实例上不存在这样的密钥NSDictionary,因此引发了异常.
您通常应该使用objectForKey:从中检索值NSDictionary.
信用证必须转到肯托马斯的下面的评论,纠正这个答案的早期版本.
| 归档时间: |
|
| 查看次数: |
184 次 |
| 最近记录: |