0

我正在使用 NSKeyedArchiver / NSKeyedUnarchiver 通过蓝牙将对象从 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 上发帖...

4

1 回答 1

0

好的,经过大量调试后弄清楚了……我早些时候发布了导致 EXC_BAD_ACCESS 的数据。我使用 NSZombies 来跟踪它的来源并删除了该数据发布。

于 2011-07-21T23:15:58.860 回答