我正在更新我的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];
}
有关从哪里开始的任何建议?
提前致谢!
答案 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