错误处理 - NSKeyedUnarchiver

Posted

技术标签:

【中文标题】错误处理 - NSKeyedUnarchiver【英文标题】:Error Handling - NSKeyedUnarchiver 【发布时间】:2011-07-21 01:20:03 【问题描述】:

我正在使用 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;

非常欢迎任何建议!这是我第一次在 *** 上发帖...

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于错误处理 - NSKeyedUnarchiver的主要内容,如果未能解决你的问题,请参考以下文章

NSKeyedUnarchiver 数据格式错误

重命名 Xcode 项目后出现 NSKeyedUnarchiver 错误

错误消息说我的数据为 NULL - NSKeyedUnArchiver - 我已按照所有步骤操作 - 仍然无法工作

NSKeyedUnarchiver - 需要尝试/捕获?

NSKeyedUnArchiver 崩溃

Swift,在展开可选值时意外发现 nil (NSKeyedUnarchiver)