Так как Swift в настоящее время не имеет try-catch, как я должен предотвращать сбои с плохими данными в этой строке кода?
var myObject = NSKeyedUnarchiver.unarchiveObjectWithData(data) as MyClass
UPDATE
Я создал очень простой случай на игровой площадке для демонстрации. Предположим, что мы не знаем, что в data
, как я могу поймать SIGABRT во второй строке? Нет ли способа проверить, чтобы можно было разблокировать объект NSData до вызова unarchiveObjectWithData
?
var data = "foo bar".dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)!
if let unarc = NSKeyedUnarchiver.unarchiveObjectWithData(data) { // Execution was interrupted: signal SIGABRT
}