[英]Can't parse json Data via YAJLiOS
起初我正在尝试访问我的app文件夹中的本地文件:
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
我的问题是下一个 :
有没有机会将NSData转换为NSConcreteData?
我使用正确的方法来访问数据吗?
Api文档 - http://gabriel.github.com/yajl-objc/
我的Xcode构建阶段的屏幕截图:
根据YAJL文档,您尝试调用的方法确实存在。
这只留下一个选择; 你还没有与YAJL框架完全联系起来。
确保它显示在App目标的链接框架/库列表中,就像我的示例中显示的CFNetwork.framework
一样。
由于您尝试调用的方法实际上是NSData
类别的一部分,因此请确保在其他链接器标志中包含-ObjC
。
此标志使链接器加载定义Objective-C类或类别的库中的每个目标文件。 虽然此选项通常会导致更大的可执行文件(由于加载到应用程序中的其他对象代码),但它将允许成功创建包含现有类的类别的有效Objective-C静态库。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.