NSKeyedUnarchiver 是否仍然在 iOS9 中抛出异常?

Does NSKeyedUnarchiver still throw exceptions in iOS9?

考虑以下尝试从无效 NSData 对象创建 NSKeyedUnarchiver 的代码段。

NSData *data = [@"foo" dataUsingEncoding:NSUTF8StringEncoding];
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];

当我在 iOS 8.4 模拟器上 运行 时,我得到一个 NSInvalidArgumentException。然而,在 iOS 9.1 模拟器上,初始化程序只是 returns nil.

但是,根据 official docs,该方法应该总是 对无效数据抛出异常。

This method throws an exception if data is not a valid archive.

为什么它只在iOS8 上抛出异常而在iOS9 上不抛出异常? iOS 9 中的这种新行为是否尚未记录?

是的,确认iOS9台设备(模拟器不确定)在某些情况下会抛出异常。这是我目前正在研究的示例异常。

NSInvalidArgumentException
Description: *** -[NSKeyedUnarchiver initForReadingWithData:]: incomprehensible archive (0x2d, 0xffffffa4, 0xffffffb3, 0x44, 0xffffffbe, 0xffffff89, 0xffffffcb, 0xffffffcf)