Tôi đoán điều này rất rõ ràng, nhưng tôi có câu hỏi về việc tải dữ liệu. Nếu có một tệp gọi là library.dat lưu trữ tất cả các loại thông tin về các đối tượng trong ứng dụng. Nó được thiết lập tất cả độc đáo (về phương pháp initWithCoder và encodeWithCoder vv), nhưng tôi đã tự hỏi điều gì xảy ra nếu thư viện.dat bị hỏng. Tôi đã làm hỏng nó một chút và sau đó ứng dụng sẽ sụp đổ. Có cách nào để ngăn chặn sự cố không? Tôi có thể kiểm tra tệp trước khi tải tệp không? Dưới đây là bit mà có khả năng có thể rất nghiêm trọng:NSKeyedUnarchiver - cách ngăn chặn sự cố
-(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];
}
tôi đã có một cái nhìn tại * NSInvalidUnarchiveOperationException nhưng không có ý tưởng làm thế nào tôi nên thực hiện điều này trong mã của tôi. Tôi xin cảm ơn vì bất kỳ ví dụ nào. Cảm ơn trước!
Cảm ơn bạn rất nhiều vì đã xác nhận rằng đây là cách chính thức để xử lý việc này. –
NSInvalidUnarchiveOperationException là một chuỗi, không phải là một lớp Ngoại lệ. Vì vậy, tôi nghĩ rằng bạn phải bắt NSException, sau đó kiểm tra chống lại tên của nó ...? –