gpt4 book ai didi

json - EXC_BAD 在 swift 中将 Any 转换为 Int 时的指令

转载 作者:行者123 更新时间:2023-11-30 12:27:24 26 4
gpt4 key购买 nike

我的json对象是这样的

["Success": 0, "Message": Tenant not found, "ControlId": <null>, "Source": <null>, "Result": 0, "ErrorCode": 4, "Description": ]

这是我用来检查成功值的代码。

 if (response.result.value as? [String: Any]) != nil {
// ...
let json=response.result.value as? [String: Any]
print(json!)
let successCode:Int=json!["Success"] as! Int
if(successCode==0)
{
dm.errorMessage=json!["Message"] as! String
callback("error")
}
else if(successCode>0)
{
dm.responseDict=json
callback("success")
}



}

但是我收到了这个错误 enter image description here

这是什么原因呢?以及如何解决这个问题?请帮我谢谢

最佳答案

你不能只是绕过强制转换和强制展开所有内容。当您的应用程序由于您对所使用的数据类型毫无根据的假设而崩溃时,请不要感到惊讶。使用条件绑定(bind)来适本地处理错误:

guard let json = response.result.value as? [String: Any] else {
//TODO: Handle error here safely
fatalError("response.result.value is not of type [String: Any].")
}

print(json)

guard let successCode = json["Success"] as? Int else {
//TODO: Handle error here safely
fatalError("successCode doesn't exist or exists but is not valid a valid Int.")
}

switch successCode {
case 0:
guard let message = json["Message"] as? String else {
//TODO: Handle error here safely
fatalError("Messange not present, or is not a String.")
}
dm.errorMessage = message
callback("error")

case 1...Int.max:
dm.responseDict = json
callback("success")
}

关于json - EXC_BAD 在 swift 中将 Any 转换为 Int 时的指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44010047/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com