1

我正在将某些值写入文件。请参阅下面的写操作。这在使用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;
    }
4

1 回答 1

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;
}
于 2013-07-02T09:14:59.460 回答