解析 Nsmutabledictionary 并提取值

Parse Nsmutabledictionary and extract value

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

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

请指出我哪里出错了

你应该使用 objectForKey: 而不是 valueForKey: -

NSNumber *id_user = [dictResponce objectForKey:@"@id"];

看起来 id 对象实际上是 NSNumber 而不是 NSString,所以我也更改了它。

您不能使用 valueForKey: 方法从 NSDictionary 获取相应的对象,它应该是 NSString *id_user = [dictResponce objectForKey:@"@id"];.

要使用 valueForKey: 获取 ann 对象,它应该是一个 NSMutableDictionary

编辑:

真正的问题不是valueForKey:方法,错误在关键,你不能在valueForKey:方法中使用前导@,因为@是用于集合运算符,如 @sum@count 等(它在 valueForKeyPath: 方法中,我不知道为什么它也在 valueForKey: 方法中抛出异常) 参考:https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/KeyValueCoding/Articles/CollectionOperators.html#//apple_ref/doc/uid/20002176-BAJEAIEE