次のコードを使用して、アプリケーションバンドルに存在するファイルにテキストを追加しようとしています。
NSString *dotsStr = [NSString stringWithFormat:@"%i", dots];
NSString *path = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"%i_500", dots] ofType:@"txt"];
NSString *contents = [NSString stringWithContentsOfFile:path encoding:NSASCIIStringEncoding error:nil];
NSString *newpath = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"%i_50", dots] ofType:@"txt"];
[contents appendToFile:newpath encoding:NSASCIIStringEncoding];
ファイルに追加するときは、NSStringのカテゴリを使用しています。
- (BOOL) appendToFile:(NSString *)path encoding:(NSStringEncoding)enc;
{
BOOL result = YES;
NSFileHandle *fh = [NSFileHandle fileHandleForWritingAtPath:path];
if (!fh)
{
[[NSFileManager defaultManager] createFileAtPath:path contents:nil attributes:nil];
fh = [NSFileHandle fileHandleForWritingAtPath:path];
}
if (!fh) return NO;
@try {
[fh seekToEndOfFile];
[fh writeData:[self dataUsingEncoding:enc]];
}
@catch (NSException * e)
{
result = NO;
}
[fh closeFile];
return result;
}
これはシミュレーターでは正常に機能していますが、アプリを再起動すると、テキストが追加されずに古いファイルが読み込まれます。これがどのように可能かわかりません。
変更が永続的になるようにこのカテゴリを変更する方法を知っている人はいますか?
前もって感謝します!:)