我将文件写入应用程序的文档目录:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
// the path to write file
NSString *file = [documentsDirectory stringByAppendingPathComponent:@"data.json"];
[responseString writeToFile:file atomically:YES];
但是如何访问该文件?
我的代码如下所示:
NSString *filePath = [[NSFileManager defaultManager] pathForRessorce: @"data" ofType:@"JSON"];
NSString *fileContent = [[NSString alloc] initWithContentsOfFile:filePath];
SBJsonParser *parser = [[SBJsonParser alloc] init];
NSDictionary *data = (NSDictionary *) [parser objectWithString:fileContent error:nil];
文件路径未填充...有人可以给我一个提示吗?
谢谢!
答案 0 :(得分:7)
您正在从资源文件夹中读取,而不是从文档目录中读取。您需要以与写作期间使用的方式相同的方式填充filePath
。那就是:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"data.json"];
NSString *fileContent = [[NSString alloc] initWithContentsOfFile:filePath];
答案 1 :(得分:2)
“不推荐使用initwithcontentsoffile”警告
所以不要:
NSString *fileContent = [[NSString alloc] initWithContentsOfFile:filePath];
使用:
NSString *userInfoFileContent = [[NSString alloc] initWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:&error];