7
如果我有一个投掷方法,像这样:如何从NSError获得用户信息的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...
}
然后我尝试调用它,并宣读userInfo
:
do {
try doSomethingWithString("")
} catch let error as NSError {
print(error.domain)
print(error.code)
print(error.userInfo)
}
...它回来作为一个空字典,(但域和代码正确填充):
CustomErrorDomain
42
[:]
但如果我加我n这个额外的步骤:
do {
try doSomethingWithString("")
} catch let e {
let error = e as NSError
print(error.domain)
print(error.code)
print(error.userInfo)
}
...它的工作原理:
CustomErrorDomain
42
[foo: bar]
有谁知道这可能是为什么?
仅供参考 - 我在Xcode的7测试版2(7A121l)
很有趣......不知道为什么这可能发生 – Kametrixom
我认为这是一个错误,请bugreport.apple.com提交雷达。 – robertvojta
好的,@RobertVojta。我现在已经提交了一个雷达。 – ganzogo