我正在将某些值写入文件。请参阅下面的写操作 使用 iPad 6.1 Simulator 时,此功能正常。
在我的iPad上尝试同样的事情时,它失败了。我认为这是沙盒的东西。我还没发现iOS设备上哪条路径最适合内部使用。
有什么想法吗?
#pragma mark Write Operations to Tmp Folder
- (BOOL) psWriteFileWithName: (NSString*) fileName
withString:(NSString*) string {
NSString *fileName = @"artistNumber";
NSError * error = NULL;
NSString *filePath = [NSString stringWithFormat:@"/tmp/%@.txt",fileName];
[string writeToFile:filePath
atomically:YES
encoding: NSUTF8StringEncoding
error:&error];
return YES;
}
答案 0 :(得分:3)
您无法写入/tmp
,因为这不在您的应用沙箱中。
但是,您的应用程序还有一个临时目录,可以使用NSTemporaryDirectory()
函数引用:
其中的作用如下:
NSString *tempfilePath = [NSTemporaryDirectory() stringByAppendingPathComponent:filename];
这是使用正确的NSTemporaryDirectory()
实现的方法,也编辑了一些错误处理:
#pragma mark Write Operations to Tmp Folder
- (BOOL) psWriteFileWithName: (NSString*) fileName
withString:(NSString*) string {
NSString *fileName = @"artistNumber";
NSError *error = nil;
NSString *filePath = [NSTemporaryDirectory() stringByAppendingPathComponent:filename];
if (![string writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:&error] ) {
NSLog(@"Error writing file: %@", error);
return NO;
}
return YES;
}