未找到字典元素的预期方法

时间:2012-10-23 15:35:57

标签: objective-c cocoa

我正在更新我的mac应用程序以通过xcode开始使用arc和现代obj-c语法只是为了测试它我们,但是我完成了obj-c语法我在构建项目时开始收到此错误。

在“NSMutableData *”类型的对象上找不到字典元素的预期方法

-(void) finishedCall:(id)data {

     NSString *responseString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

     receivedData = [responseString JSONValue];

    NSLog(@"receivedData-->%@",receivedData);

    NSString *serailizeString = receivedData[@"profile_image_url"];  // <-- Error comes up here

    NSLog (@"Serialize Value : %@",serailizeString);

     [qrcodeMainPage genQR:serailizeString];

}

有关从哪里开始的任何建议?

提前致谢!

2 个答案:

答案 0 :(得分:4)

您正在使用新的键控订阅语法尝试访问(编译器认为是什么)NSData对象中的某些内容,如错误所示,该内容不起作用。想必你期望receivedData是一本字典?如果它在运行时确实是一个NSDictionary,你应该声明它。我不知道你所调用的-JSONValue方法是什么意思返回,所以我不能确定接收到的数据是什么或可能是什么。如果它可能是也可能不是字典,则需要编写更多代码来检查其类型并正确运行。在任何情况下,dictionary[key]表示法仅适用于作为支持键控下标的类的实例的对象。 NSDictionary就是其中一个类。 NSData不是。

答案 1 :(得分:0)

您是否缺少包含JSON扩展方法的JSON类别?

http://developer.apple.com/library/ios/#documentation/Foundation/Reference/NSJSONSerialization_Class/Reference/Reference.html