解析Nsmutabledictionary并提取值

时间:2015-06-09 09:04:07

标签: ios objective-c json nsdictionary nsmutabledictionary

大家好,我在解析字典时遇到一个问题就是字典

    {
    "@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];

请建议我哪里出错了

2 个答案:

答案 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