gpt4 book ai didi

ios - 正确使用 NSFileHandle

转载 作者:行者123 更新时间:2023-11-29 03:46:37 24 4
gpt4 key购买 nike

所以今天早上我遇到了一个非常奇怪的问题。我有一个 NSMutableString 随着时间的推移不断增长,它偶尔会将自己保存到磁盘,基本上创建一个不断增长的文本文件。直到几个小时前,它一直运行良好。顺便说一句,我也没有更改该方法中的任何代码。这是我正在使用的代码,NSMutableString 被称为 stringToSave:

- (void)saveToTextFile {
NSLog(@"SaveTextToFile called");

// Get Current date and time:
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd"];

NSDateFormatter *timeFormat = [[NSDateFormatter alloc] init];
[timeFormat setDateFormat:@"hh:mm"];

NSDate *now = [[NSDate alloc] init];

NSString *theDate = [dateFormat stringFromDate:now];
NSString *theTime = [timeFormat stringFromDate:now];

NSString *dateToBeDisplayed = [NSString stringWithFormat:@"Date: %@, Time: %@.", theDate, theTime];


// Create text to save, and save it.
stringToSave = [NSString stringWithFormat:@"\n %@ ",dateToBeDisplayed];

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"mynotes"];

NSFileHandle *fileHandle = [NSFileHandle fileHandleForWritingAtPath:filePath];
[fileHandle seekToEndOfFile];
[fileHandle writeData:[stringToSave dataUsingEncoding:NSUTF8StringEncoding]];
[fileHandle closeFile];


// Check what's saved there.
NSString *content = [NSString stringWithContentsOfFile:filePath encoding:NSStringEncodingConversionAllowLossy error:nil];

NSLog(@"File Content: %@", content);
NSLog(@"stringtosave: %@", stringToSave);
}

奇怪的是,stringToSave 在 NSLog 中总是有正确的数据,而 content 仍然为空。有人发现我上面保存数据的方式有什么问题吗?

最佳答案

启动时该文件是否存在? https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/nsfilehandle_Class/Reference/Reference.html表示如果文件不存在,则 fileHandleForWritingAtPath: 返回 nil。

如果您删除并重新安装应用程序(无论是在设备上还是在模拟器上),该文件将不存在。

关于ios - 正确使用 NSFileHandle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17681322/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com