我的应用将用户信息/偏好设置的加密数据写入文件,并在下次打开应用时从该文件中读取。
写一个文件:
- (BOOL)writeFile:(NSString *)data:(NSString *)fileName {
return [data writeToFile:fileName
atomically:YES
encoding:NSUTF8StringEncoding error:nil];
}
阅读文件:
- (NSString *)readFile:(NSString *)fileName {
NSData *data = [NSData dataWithContentsOfFile:fileName];
NSString *str = [[[NSString alloc] initWithData:data
encoding:NSUTF8StringEncoding] autorelease];
return str;
}
这在模拟器上运行良好。按预期编写和读取文件。有没有什么我必须设置文件读/写设备?
答案 0 :(得分:7)
文件名必须位于文档目录中。模拟器对设备写入文件的位置没有那么多限制。
获取文档目录,如下所示:
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *fileName = [documentsDirectory stringByAppendingPathComponent:@"myfilename.extension"];
将其传递给上面的函数,你应该没问题。