我有下面的代碼位:stringWithUTF8String失敗了,但只是有時
NSData *data = [NSData dataWithContentsOfFile:filePath options:0 error:&fileError];
NSString *recipe = @"";
if (fileError == nil) {
recipe = [NSString stringWithUTF8String:[data bytes]];
NSLog(@"Converted Recipe as: %@",recipe);
NSLog(@"Original Data was: %@",data);
} else {
NSLog(@"Error reading file: %@", [fileError localizedDescription]);
}
的問題是,有時stringWithUTF8String返回null,有時它正確返回文件的內容......相同的文件。有時它有效,有時不起作用。這是從日誌中的一個片段,當它不是......這意味着文件讀取正在工作,但由於某種原因,這次轉換失敗了。如果我再這樣做(這被稱爲一個的tableView didSelectRowAtIndexPath方法的結果是:這樣我就可以點擊不同的行,然後回來這個
2010-08-01 16:14:29.031 RecipeBrowse[52056:207] Converted Recipe as: (null)
2010-08-01 16:14:29.037 RecipeBrowse[52056:207] Original Data was: <426c6163 6b656e65 64204361 626f2046 69736820 5461636f 730a0a49 4e475245 4449454e 54533a0a 0a2d200a 0a0a4d45 54484f44 3a0a0a42 4c41434b 454e4544 20434142 4f204649 53482054 41434f53
任何想法如何使這更可靠。 ?
返回並閱讀有關錯誤處理的文檔。切勿測試錯誤是否爲非零;總是測試返回值(在這種情況下是數據)。 – 2010-08-02 09:29:52