【发布时间】:2011-05-27 14:49:42
【问题描述】:
我正在使用一种非常简单的方法将文件名存储在文本文件中。出于某种原因,当我启动 writeToFile 时,我遇到了崩溃:
pathString = [NSString stringWithFormat:@"New FileName - %@.png", identifier];
NSString *currentContents = [NSString stringWithContentsOfFile:saveFilePath encoding:NSUTF8StringEncoding error:nil];
NSString *newContents = [NSString stringWithFormat:@"%@:::%@",currentContents, pathString];
NSData *newData = [newContents dataUsingEncoding:NSUTF8StringEncoding];
[newData writeToFile:saveFilePath options:NSDataWritingAtomic error:nil];
它读取文件,将其内容放入名为 currentContents 的变量中,然后将新字符串添加到文件中,然后重新写入。这里出了什么问题。
如果没有 writeToFile 行,它可以工作,使用它,我会崩溃。
saveFilePath 的来源
NSString *saveDocument = [NSString stringWithFormat:@"SavedFile.txt"];
NSString *docsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
saveFilePath = [docsDirectory stringByAppendingPathComponent:saveDocument];
saveFilePath 的 NSLog 显示正确的路径
【问题讨论】:
-
您应该使用
-[NSData writeToURL:options:error:],因为Apple 建议在处理文件路径时使用NSURL对象而不是NSString对象。顺便说一句,您在第一行有语法错误。 -
啊,你指的是逗号,这是在我的匿名过程中完成的,我的原始代码有逗号,哈哈。对,我会尝试使用 NSURL 而不是 NSString
-
error:nil 应该是 error:NULL
-
@onnoweb 您的建议仍然存在错误。
-
saveFilePath 来自哪里?