0

锡纸上写着什么。我要做的就是将 NSString 保存到我的 Documents 目录中的 .txt 文件中,以便用户可以访问它。这在 applicationWillTerminate 中调用:

NSError* err;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
// the path to write file
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"TheFile.txt"];
BOOL success = [[textView text] writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&err];
if (!success) {
     NSLog(@"Error: %@ %@", err, [err userInfo]);
}

就我而言,成功返回为否,并且我的应用程序在 NSLog 行上崩溃(EXC_BAD_ACCESS)。有任何想法吗?

4

2 回答 2

2

如果textView(or [textView text]) 为 nil,success将是NOerr将未初始化。这是在这里崩溃的唯一可能方式。

尝试设置NSError* err = nil;

于 2010-07-11T08:42:32.613 回答
0

我相信你应该检查error对象,而不是success布尔值。毕竟 - 这就是为什么你要传递它的地址来进行写操作。

if (error) {
     NSLog(@"Error: %@", err);
}

此外,您可能想检查[textView text]是否不返回nil,如果textView不是nil本身。

于 2010-07-11T08:16:46.807 回答