大家好,我在解析字典时遇到一个问题就是字典
{
"@id" = 10;
activityLocation = "";
activityPriority = 1;
actualEndDate = "<null>";
actualStartDate = "<null>";
children = (
);
}
我在json中得到这个回应,当我试图解析这个词典并试图从词典中获取@id值时它给出了我的错误
[<__NSCFDictionary 0x7b07d370> valueForUndefinedKey:]: this class is not key value coding-compliant for the key id.
我试图获得@id值,如下面的代码
NSString *id_user = [dictResponce valueForKey:@"@id"];
int user_id = [id_user intValue];
请建议我哪里出错了
答案 0 :(得分:0)
您应该使用objectForKey:
而不是valueForKey:
-
NSNumber *id_user = [dictResponce objectForKey:@"@id"];
看起来id对象实际上是NSNumber
而不是NSString
,所以我也改变了它。
答案 1 :(得分:0)
您不能使用valueForKey:
方法从NSDictionary获取相应的对象,它应该是NSString *id_user = [dictResponce objectForKey:@"@id"];
。
要使用valueForKey:
获取ann对象,它应该是NSMutableDictionary
修改强>
实际问题不是valueForKey:
方法,错误在密钥中,您无法在@
方法中使用前导valueForKey:
,因为@
用于收集运算符,例如@sum
,@count
等(valueForKeyPath:
方法,我也不知道为什么valueForKey:
方法中的trowing异常也是如此)
价:https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/KeyValueCoding/Articles/CollectionOperators.html#//apple_ref/doc/uid/20002176-BAJEAIEE