Рассмотрите следующий фрагмент, который пытается создать NSKeyedUnarchiver
из недопустимого объекта NSData
.Неужели NSKeyedUnarchiver все еще бросает исключения в iOS9?
NSData *data = [@"foo" dataUsingEncoding:NSUTF8StringEncoding];
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
Когда я бегу это на IOS 8.4 тренажере, я получаю NSInvalidArgumentException
. Однако на симуляторе iOS 9.1 инициализатор просто возвращает nil
.
Однако, согласно do official docs, метод должен всегда исключить неверные данные.
Этот метод генерирует исключение, если данные не являются допустимым архивом.
Почему это исключает только iOS8, но не на iOS9? Является ли это новое поведение в iOS 9, которое еще не задокументировано?
Странно, может быть, тогда это симулятор. У меня нет исключений. – hennes