2010-07-11 82 views
0

它說錫上。我想要做的就是將NSString保存到我的Documents目錄中的.txt文件,以便用戶可以訪問它。這就是所謂的applicationWillTerminate:NSString失敗,應用程序崩潰嘗試NSLog的NSError

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,和我的應用程序崩潰(EXC_BAD_ACCESS)在NSLog的線。有任何想法嗎?

回答

2

如果textView(或[textView text])爲零,則success將爲NO,但err將未初始化。這是在這裏墜毀的唯一可能的方法。

嘗試設置NSError* err = nil;

+0

Thanks!它是空文本視圖和未初始化的NSError的組合。 – Khakionion 2010-07-11 19:57:38

0

我相信你應該檢查error對象,而不是success布爾值。畢竟 - 這就是爲什麼你要通過寫入操作的地址。

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

你也可能要檢查[textView text]不返回nil如果textViewnil本身。

相關問題