2012-03-21 13 views
5

Mam następujący kod:NSKeyedUnarchiver unarchiveObjectWithData ulega awarii - nie ma sposobu na wychwycenie wyjątku?

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

W pewnym momencie wydaje się, że nie został prawidłowo archiwizacji i mData jest uszkodzony. To daje mi następujący błąd:

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: 

Jeśli blok try/catch nie działa, jak mam sprawdzić wyjątek tutaj? Czy to nie powinno działać?

Dziękuję.

+0

Czy kiedykolwiek rozwiązałeś ten problem? – PICyourBrain

+0

@ PICyourBrain to było dość długo i nie pamiętam, co zrobiłem, niestety. W tamtym czasie nie miałem jednak testu jednostkowego dla tej części kodu, więc nie jestem pewien, na czym polegał problem. – dimitrios

Odpowiedz

0

Nie sądzę, aby kod try-catch nie działał. Dziennik mówi "nieprzechwycony wyjątek", więc ten błąd występuje gdzie indziej w kodzie.

+0

Mam dokładnie ten sam problem i zdecydowanie używam bloku catch try również. W moim przypadku nie łapie go sporadycznie. – PICyourBrain

Powiązane problemy