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 に答える