NSArray *t_annos;
@try
{
NSLog(@" --- pointer before = %ld --- ", (long) t_annos);
t_annos
= [NSKeyedUnarchiver unarchiveObjectWithFile : d_path];
NSLog(@" --- pointer after = %ld --- ", (long) t_annos);
}
@catch (NSException *e)
{
NSLog(@" --- e caught ---");
t_annos = nil;
}
請考慮上述聲明,該情況是:關於從NSException「NSKeyedUnarchiver unarchiveObjectWithFile:」
根據文件,如果d_path沒有指向一個有效的異常應提高存檔。但即使d_path被故意設置爲無效路徑,也不會發生異常。
已測試的模擬器的xcode和測試色器件(iphone)二者的代碼。儘管模擬器和電話設備都沒有發現任何異常情況,但手機在模擬器上按照預期解除了對陣列的存檔操作,程序在輸出處停止輸出:「程序接收信號:」EXC_BAD_ACCESS「」。
「壞訪問」錯誤應該來在「unarchiveObjectWithFile」的聲明,因爲該計劃第一的NSLog輸出後停止。
當嘗試與單個的NSString對象存檔和取消存檔,模擬器和測試裝置都沒有問題。但即使路徑錯誤也沒有發現異常。
我可能會缺少某些東西,希望有人知道可以提供幫助。
請更多的創意與您的圖書。我們知道這是一個問題。 – Mat
標題編輯,感謝您指出... – Stanley
什麼對象在你的數組?任何自定義類? – mja