2

我正在更新我的 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];

}

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

提前致谢!

4

2 回答 2

4

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

于 2012-10-23T16:19:15.327 回答
0

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

http://developer.apple.com/library/ios/#documentation/Foundation/Reference/NSJSONSerialization_Class/Reference/Reference.html
于 2012-10-23T15:45:46.717 回答