我正在使用NSKeyedArchiver / NSKeyedUnarchiver通过蓝牙将对象从iPad发送到iPhone遥控器。它可以工作,如here所示。
但是,如果遥控器接收到未存档的数据(例如,随机的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上发帖。
发布于 2011-07-22 07:15:59
好的,经过大量的调试后弄明白了.我早些时候发布的数据导致了EXC_BAD_ACCESS。我使用NSZombies来跟踪它的来源,并删除了那个数据发布。
https://stackoverflow.com/questions/6770341
复制相似问题