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)
考虑以下尝试从无效 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)