【发布时间】:2012-04-28 21:08:54
【问题描述】:
起初我试图访问我的应用文件夹中的本地文件:
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 构建阶段的屏幕截图:
【问题讨论】:
-
我认为我的主要问题是我使用错误的方法访问数据
-
你记得在课堂上#import
吗? -
另外,关于 NSConcreteData,请在此处查看此问题的答案:stackoverflow.com/questions/1113811/…
-
是的,YAJLiOS/YAJL.h 已导入
-
@jonkroll 导入如何防止运行时错误?
标签: iphone objective-c ios xcode yajl