Обработка ошибок - NSKeyedUnarchiver - PullRequest
0 голосов
/ 21 июля 2011

Я использую NSKeyedArchiver / NSKeyedUnarchiver для отправки объектов через Bluetooth с iPad на пульт дистанционного управления iPhone. Это работает, как показано здесь .

Однако, если пульт дистанционного управления получает данные, которые не были заархивированы (например, случайная строка NSString), происходит сбой всего приложения. Я хочу иметь возможность сказать, «если данные в архиве - это объект X, разархивируйте их и сделайте следующее, но проигнорируйте это иначе».

Есть ли способ обработать эти ошибки с помощью NSKeyedUnarchiver?

Вот мой код:

- (NSMutableDictionary *)unpackReceivedNSMutableDictionaryFromData:(NSData *)receivedData {
    NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:receivedData];
    NSMutableDictionary *receivedDictionary = [[unarchiver decodeObjectForKey:@"MyKey"] retain];
    [unarchiver finishDecoding];
    [unarchiver release];
    return receivedDictionary;
}

Любые предложения приветствуются! Это моя первая публикация в StackOverflow ...

1 Ответ

0 голосов
/ 22 июля 2011

Хорошо, разобрался с этим после долгих отладок ... Ранее я выпускал данные, которые вызвали EXC_BAD_ACCESS. Я использовал NSZombies, чтобы отследить, откуда он пришел, и удалил этот выпуск данных.

...