我正在我的应用中集成条纹。该代码有效,但我想获取描述错误并将其显示给带有标签的用户,以防出现问题(CC编号不正确等):
// other stuff here
STPAPIClient.sharedClient().createTokenWithCard(stripeCard) { (token, error) -> Void in
if let error = error {
print(error.userInfo)
}
else if let token = token {
self.createBackendChargeWithToken(token) { status in
if status == PKPaymentAuthorizationStatus.Success{
dispatch_async(dispatch_get_main_queue()){
self.paymentActivity.hidden = true
self.paymentActivity.stopAnimating()
self.paymentActivityLabel.text = "Transaction approved!"
}
}
}
}
}
}
当我打印error.userInfo
时,我得到以下内容:
[com.stripe.lib:ErrorMessageKey: Your card number is incorrect.,
com.stripe.lib:CardErrorCodeKey: com.stripe.lib:IncorrectNumber,
com.stripe.lib:ErrorParameterKey: number,
NSLocalizedDescription: Your card's number is invalid]
我如何推断NSLocalizedDescription
?
答案 0 :(得分:1)
error.userInfo
通常是NSDictionary。
当你打印这个字典时,没有类似Swift字典的类型,所以打印功能并不总是识别什么是字符串,并且不显示双引号。但是你的userInfo
字典键仍然可能是字符串。
我首先尝试访问错误值,如下所示:
print(error.userInfo["NSLocalizedDescription"])
验证确实NSLocalizedDescription
是字符串键。
提示:按住ALT并点击变量,它会显示其类型,有助于在Xcode中快速调试。