写入/ tmp文件夹iPad

时间:2013-07-02 09:09:22

标签: objective-c sandbox writetofile

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

1 个答案:

答案 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;
}