Da Swift derzeit keinen try-catch hat, wie soll ich Abstürze bei fehlerhaften Daten in dieser Codezeile verhindern?NSKeyedUnarchiver Fehlerbehandlung - Absturz in Swift verhindern
var myObject = NSKeyedUnarchiver.unarchiveObjectWithData(data) as MyClass
UPDATE
habe ich einen sehr einfachen Fall auf einem Spielplatz für die Demonstration. Angenommen, wir wissen nicht, was in data
ist, wie kann ich die SIGABRT in der zweiten Zeile fangen? Gibt es keine Möglichkeit zu überprüfen, ob es möglich ist, ein NSData-Objekt vor dem Aufruf von unarchiveObjectWithData
zu entpacken?
var data = "foo bar".dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)!
if let unarc = NSKeyedUnarchiver.unarchiveObjectWithData(data) { // Execution was interrupted: signal SIGABRT
}
Ich habe das gleiche Problem - haben Sie schon eine Lösung gefunden? –
Noch nicht ... Es sollte wirklich eine Fehlerreferenz als Parameter in die 'unarchiveObjectWithData'-Methode für die Behandlung von objc style und keine Ausnahmen ausgelöst werden .. nicht sicher, wie sie diese mit den Core-Bibliotheken verpasst haben, aber leider. – ccwasden