2015-11-17 20 views
1

請考慮下面的代碼片段,它試圖從無效的NSData對象中創建NSKeyedUnarchiverNSKeyedUnarchiver是否仍然在iOS9中引發異常?

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

當我在iOS 8.4模擬器上運行這個時,我得到一個NSInvalidArgumentException。但是,在iOS 9.1模擬器上,初始化程序僅返回nil

但是,按照official docs,方法應該總是在無效數據上拋出異常。

如果數據不是有效歸檔,則此方法會引發異常。

爲什麼它只會在iOS8上拋出一個異常,而不會在iOS9上拋出異常? iOS 9中的這種新行爲是否尚未記錄?

回答

2

是的,確認iOS 9設備(不確定模擬器)會在某些情況下拋出異常。這是我目前正在研究的一個例外例外。

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

奇怪,也許這是一個模擬器的東西。我在那裏沒有例外。 – hennes