它在锡上说的是什么。我想要做的就是将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]);
}
在我的情况下,成功返回NO,我的应用程序在NSLog行上崩溃(EXC_BAD_ACCESS)。有什么想法吗?
答案 0 :(得分:2)
如果textView
(或[textView text]
)为零,则success
将为NO
,但err
将为未初始化。这是在这里崩溃的唯一可能方式。
尝试设置NSError* err = nil;
答案 1 :(得分:0)
我相信你应该检查error
对象,而不是success
布尔值。毕竟 - 这就是你为写操作传递它的地址的原因。
if (error) {
NSLog(@"Error: %@", err);
}
另外,您可能需要检查[textView text]
是否未返回nil
以及textView
本身是否nil
。