我想這是非常明顯的,但我有一個關於加載數據的問題。如果有一個名爲library.dat的文件,它存儲有關應用程序中對象的所有類型的信息。它的設置都很好(根據initWithCoder和encodeWithCoder等方法),但我只是想知道如果library.dat被破壞會發生什麼。我自己破壞了它,然後應用程序就會崩潰。有什麼辦法來防止崩潰?我可以在加載之前測試一個文件嗎?這裏是位,它可能會非常致命:NSKeyedUnarchiver - 如何防止崩潰
-(void)loadLibraryDat {
NSLog(@"loadLibraryDat...");
NSString *filePath = [[self documentsDirectory] stringByAppendingPathComponent:@"library.dat"];
// if the app crashes here, there is no way for the user to get the app running- except by deleting and re-installing it...
self.libraryDat = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath];
}
我看了一下* NSInvalidUnarchiveOperationException,但不知道我應該怎麼在我的代碼實現這一點。我會很感激任何例子。提前致謝!
非常感謝您確認這是處理此問題的官方方式。 –
NSInvalidUnarchiveOperationException是一個字符串,而不是一類Exception。所以我認爲你必須抓住NSException,然後檢查它的名字......? –