最初に、アプリフォルダー内のローカルファイルにアクセスしようとしています:
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 ビルド フェーズのスクリーンショット: