Supongo que esto es muy obvio, pero tengo una pregunta sobre la carga de datos. Si tiene un archivo llamado library.dat que almacena todo tipo de información sobre objetos en la aplicación. Está configurado todo muy bien (en términos de los métodos initWithCoder y encodeWithCoder, etc.), pero me preguntaba qué pasaría si el archivo library.dat se corrompe alguna vez. Lo corrompí un poco y la aplicación se bloqueará. ¿Hay alguna forma de prevenir un bloqueo? ¿Puedo probar un archivo antes de cargarlo? Aquí es el bit que potencialmente puede ser muy grave:NSKeyedUnarchiver: cómo evitar un bloqueo
-(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];
}
tuve un vistazo a * NSInvalidUnarchiveOperationException pero no tienen idea de cómo debería implementar esto en mi código. Agradecería cualquier ejemplo. ¡Gracias por adelantado!
Muchas gracias por confirmar que esta es la forma oficial de manejar esto. –
NSInvalidUnarchiveOperationException es una cadena, no una clase de Excepción. ¿Entonces creo que tienes que atrapar NSException, luego verificas su nombre ...? –