0

iPhone で次のコードを使用して、iPhone プロジェクト リソース フォルダーに保存されているファイルに文字列を書き込みます。データの読み取りを正常に読み取ろうとすると、ファイルを書き込もうとすると、エラーは発生しませんが、ファイルは書き込まれません。

これは私のコードです:

NSString *myString; //Assuume the string you want to write is this
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,     NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"myfile.txt"];
[myString writeToFile:path atomically:YES];

どなたかご指南ください。

4

3 に答える 3

1
- (void) testStringReadWrite {
    NSString *myString = @"abcd efgh"; 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *path = [documentsDirectory stringByAppendingPathComponent:@"myfile.txt"];
    CFShow(path);
    NSError *error = nil;

    [myString writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&error];
    if (error) {
        NSLog(@"%@",error);
    }


    NSString *readString = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error];
    if (error) {
        NSLog(@"%@", error);
    } else {
        CFShow(readString);
    }

}
于 2011-07-06T11:55:50.277 に答える
0

OS X から来たわずか 2 セントで、writeToURL()代わりにwriteToFile(). 結局のところwriteToFile()、iOSで機能したものです。

于 2012-09-05T17:16:00.510 に答える
0

writeToFile:atomically: は iOS 2.0 で廃止されました。代わりに writeToFile:atomically:encoding:error: を使用してください。NSLog() 関数などを使用して、文字列の内容を確認する必要があります。初期化が不適切な場合、障害が発生する可能性があります。

NSLog(@"%@", myString);
[myString writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:NULL];
于 2011-07-06T11:44:09.177 に答える