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 のこの新しい動作ですか?