Se ho un metodo di lancio, in questo modo:Come arrivare userInfo da NSError nella clausola catch
func doSomethingWithString(string:String) throws {
guard string.characters.count > 0 else {
throw NSError(domain: "CustomErrorDomain", code: 42, userInfo: ["foo" : "bar"])
}
// Do something with string...
}
Allora provo a chiamarlo e leggere il userInfo
:
do {
try doSomethingWithString("")
} catch let error as NSError {
print(error.domain)
print(error.code)
print(error.userInfo)
}
... torna come un dizionario vuoto, (ma il dominio e il codice sono compilati correttamente):
CustomErrorDomain
42
[:]
Ma se aggiungo io n questo ulteriore passaggio:
do {
try doSomethingWithString("")
} catch let e {
let error = e as NSError
print(error.domain)
print(error.code)
print(error.userInfo)
}
... funziona:
CustomErrorDomain
42
[foo: bar]
Qualcuno sa perché questo potrebbe essere?
FYI - Sono in Xcode 7 beta 2 (7A121l)
Molto interessante ... Non so perché questo possa accadere – Kametrixom
considero questo come un bug, si prega di presentare un radar a bugreport.apple.com. – robertvojta
Ok, @RobertVojta. Ora ho depositato un radar. – ganzogo