ファイルを読み取って、アプリのファイルの内容を変更しようとしています。ここにviewWillAppearメソッドの私のコード:
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"myfile" ofType:@"txt"];
NSFileHandle *file;
NSData *databuffer;
file = [NSFileHandle fileHandleForReadingAtPath:filePath];
if (file == nil)
NSLog(@"Failed to open file");
[file seekToFileOffset: 0];
databuffer = [file readDataToEndOfFile];
NSString *strData = [[NSString alloc]initWithData:databuffer encoding:NSUTF8StringEncoding];
NSLog(@"%@", strData);
[file closeFile];
file = nil;
filePath = nil;
databuffer = nil;
}
ここに myfile.txt の内容があります:
test
ここでは、ビューが表示された後の nslog の結果:
2012-02-03 13:46:01.165 iBadah[9629:207] test
しかし、問題は、myfile.txt の内容を変更したときです (アプリは引き続き実行されます)。
test test
結果は実際の myfile.txt コンテンツに変化せず、代わりに古いコンテンツが表示されます。
2012-02-03 13:46:21.335 iBadah[9629:207] test
したがって、シナリオは、ビューをプッシュし (その後、viewWillAppear が実行されます)、結果が表示され、別のビューに移動し、myfile.txt の内容を変更し、最初のビューに戻り (viewWillAppear を再度実行するため)、結果は変わりません。
誰でも myfile.txt の実際の内容を取得するための回避策を教えてもらえますか? ありがとう。