考虑以下尝试NSKeyedUnarchiver
从无效NSData
对象创建的片段。
NSData *data = [@"foo" dataUsingEncoding:NSUTF8StringEncoding];
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
当我在 iOS 8.4 模拟器上运行它时,我得到一个NSInvalidArgumentException
. 然而,在 iOS 9.1 模拟器上,初始化程序只返回nil
.
但是,根据官方文档,该方法应始终对无效数据抛出异常。
如果数据不是有效的存档,此方法将引发异常。
为什么它只在 iOS8 上抛出异常而不在 iOS9 上抛出异常?iOS 9 中的这种新行为是否还没有记录?