起初我试图访问我的应用程序文件夹中的本地文件:
NSData *data = [NSData dataWithContentsOfFile:
[@"countries.json" stringByExpandingTildeInPath]];
结果始终为 NULL
然后我尝试检查文件是否存在:
NSString* documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString* foofile = [documentsPath stringByAppendingPathComponent:@"countries.json"];
BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:foofile];
它不存在,我使用以下代码访问我的 json 文件:
NSString *data1 = [[NSBundle mainBundle] pathForResource:@"countries" ofType:@"json"];
NSData *data2 = [[NSData alloc] initWithContentsOfFile:data1];
它获取文件但是当我尝试解析它时:
NSDictionary *dict1 =[data2 yajl_JSON];
我收到一个错误:
[NSConcreteData yajl_JSON]: unrecognized selector sent to instance 0x6838d60
我的问题是下一个 :
Api 文档 - http://gabriel.github.com/yajl-objc/
我的 Xcode 构建阶段的屏幕截图:
最佳答案
根据 YAJL 文档,您尝试调用的方法确实存在。
那只剩下一种选择;您还没有完全链接到 YAJL 框架。
确保它显示在您的应用程序目标的链接框架/库列表中,就像我的示例中显示的 CFNetwork.framework
一样。
由于您尝试调用的方法实际上是 NSData
上 类别 的一部分,因此请确保将 -ObjC
包含在 其他链接器标志 中。
From Apple's Technical Q&A 。
关于iphone - 无法通过 YAJLiOS 解析 json 数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10367537/