当我调用[NSArray arrayWithContentsOfFile:]时,我得到零。
NSURL *fileURL = [NSURL URLWithString:className relativeToURL:[self JSONDataRecordsDirectory]];
return [NSArray arrayWithContentsOfFile:[NSString stringWithFormat:@"%@", [fileURL path]]];
或者,我打电话时也会收到:
[NSArray arrayWithContentsOfURL:]
我的所有文件的结果都在JSON中: https://gist.github.com/neverbendeasy/03d047a6789b0ae14e1f
当我检查fileURL时,数据就在那里。
我错过了什么?
答案 0 :(得分:5)
您无法使用NSArray arrayWith...
加载JSON文件。该方法只能加载一个以数组为根的plist文件。
如果您的文件是JSON文件,则应使用:
NSData *jsonData = [NSData dataWithContentsOfURL:fileURL];
NSError *error = nil;
NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error];
if (jsonArray) {
// do something with jsonArray
} else {
NSLog(@"Couldn't load JSON from %@: %@", fileURL, error);
}
这假设JSON文件的顶级是一个数组。
答案 1 :(得分:0)
使用NSURL的
+ (id)fileURLWithPath:(NSString *)path
或
+ (id)fileURLWithPath:(NSString *)path isDirectory:(BOOL)isDir
而不是
+ (id)URLWithString:(NSString *)URLString
使用本地文件系统时。