gpt4 book ai didi

ios - 无法将类型 '_SwiftValue' 的值转换为 'NSNumber'

转载 作者:行者123 更新时间:2023-11-30 11:04:20 25 4
gpt4 key购买 nike

我正在尝试将以下响应中的“状态”转换为 Int。

{
"status": "200",
"message": "Token successfully generated.",
"data": {
"token": "abc"
}
}

当我尝试转换时,它显示错误,例如无法将类型“_SwiftValue”的值转换为“NSNumber”。

这是我在代码中尝试过的内容。

var status:Int = 0
var dict = dictTemp as! Dictionary<String,AnyObject>

if let value = dict["status"] as? String {
status = value.toInt()!
} else if let value = dict["status"] as? Int {
status = value
}

// let status = dictTemp!.value(forKey: "status") as? String ?? ""

if(status == 200)
{
errorCode = 0
error = false
}
else
{
errorCode = 1
error = true
}

它总是转到其他部分。

这里我附上了我在 JSON 数据中看到的屏幕截图。

请帮助我如何将状态转换为 Int。

enter image description here

最佳答案

我认为您的问题是因为您使用的是 AnyObject 而不是 Any。您的字典必须是[String: Any]类型。

查看此答案 here .

AnyObject is only for reference types (classes), Any is for both value and reference types.

此外,由于您将问题标记为 Swift 4,因此您应该使用 Int() 进行转换,而不是 .toInt()

示例:

func getStatus(jsonData: Data) -> Int {
guard
let json = try? JSONSerialization.jsonObject(with: jsonData, options: []),
let dict = json as? [String: Any],
let statusString = dict["status"] as? String,
!statusString.isEmpty,
let status = Int(statusString)
else {
return 0
}

return status
}

关于ios - 无法将类型 '_SwiftValue' 的值转换为 'NSNumber',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52905991/

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