1

この問題についていくつかのことを見つけましたが、これまでのところ何も機能していません。

次のコードを使用して、ファイルの最後に書き込もうとしています。

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Filename" ofType:@"txt"];
NSString *textToWrite = @"Test";
NSFileHandle *fileHandle = [NSFileHandle fileHandleForWritingAtPath:filePath];
[fileHandle seekToEndOfFile];
[fileHandle writeData:[textToWrite dataUsingEncoding:NSUTF8StringEncoding]];
[fileHandle closeFile];

コードをステップ実行すると、filePath が「/var/mobile/Applications/1669D96A-1ABA-4A4F-D083-A90EB728691B/MyApp.app/Filename.txt」に設定されます。

ただし、NSFileHandle fileHandleForWritingAtPath は nil を返します。コードは例外/警告を発生させず、問題なく続行します。ファイルを文字列に読み込むと、新しいテキストは存在せず、最初にファイルに含まれていたもの (Xcode で入力されたもの) のみが存在します。ファイルを読み取るためのパスを取得するためにまったく同じコードを使用すると、うまくいきます!

4

1 に答える 1

1

アプリ バンドルは読み取り専用です。バンドル内のどのパスにも書き込むことはできません。そのため、nilファイル ハンドルを取得します。

于 2014-02-26T22:57:48.027 に答える