2012-03-21 6 views
5

Tengo el siguiente código:NSKeyedUnarchiver unarchiveObjectWithData se bloquea - ¿No hay forma de detectar la excepción?

@try { 
    NSSet *set = [NSKeyedUnarchiver unarchiveObjectWithData:mData]; 
} 
@catch (NSException *exception) { 
    // Use default data 
} 

En algún momento parece que no estaba archivando correctamente y mData está dañado. Esto me da el siguiente error:

Terminating app due to uncaught exception 'NSInvalidArgumentException', 
reason: '*** -[NSKeyedUnarchiver initForReadingWithData:]: 
incomprehensible archive (0x14, 0xffffff9a, 0xffffffd0, 0x1d, 0x9, 0x3d, 0x43, 0x3)' 
*** Call stack at first throw: 

Si un bloque try/catch no funciona, ¿cómo se supone que voy a comprobar si hay una excepción en esta lista? ¿No debería estar funcionando?

Gracias.

+0

¿Alguna vez resolvió esto? – PICyourBrain

+0

@PICyourBrain ha pasado bastante tiempo y no recuerdo lo que hice, desafortunadamente. Sin embargo, no tenía una prueba unitaria para esa parte del código en ese momento, así que no estoy seguro de cuál fue el problema. – dimitrios

Respuesta

0

No creo que el código try-catch no funcionara. El registro dice "excepción no detectada", por lo que este error se produce en otro lugar de su código.

+0

Estoy teniendo exactamente el mismo problema y definitivamente estoy usando un bloque try catch también. En mi caso, no puede atraparlo intermitentemente. – PICyourBrain

Cuestiones relacionadas