if let data = data{
do{
let parsedData = try JSONSerialization.jsonObject(with: data) as! [String:Any]
print(parsedData["result"]!)
let result = parsedData["result"] as! Int
if(parsedData["result"] == 0 ){
print(result)
let alert = UIAlertController(title: "Success", message: "Favorite Added", preferredStyle: UIAlertControllerStyle.alert)
alert.addAction(UIAlertAction(title: "OK", style: .default, handler: { action in
}))
self.present(alert, animated: true, completion: nil)
}
}catch{
print(error)
}
}
这里给出二进制运算符'=='的错误,不能应用于类型为'Any?'的操作数和'Int' 此错误的图片也已附上
答案 0 :(得分:2)
有两个严重的问题:
[String:Any]
字典的字典值是Any
,未指定。parsedData
的值是字符串,而不是数字您有两个选择,第一个是有条件向下转换到String
,然后检查"0"
if let result = parsedData["result"] as? String, result == "0" { ...
或将字符串转换为Int
并检查数字0
if let result = parsedData["result"] as? String, let intResult = Int(result), intResult == 0 { ...
在这两种情况下,都使用可选绑定安全地展开可选对象
答案 1 :(得分:0)
我先告诉go String
,然后转换该字符串
检查像这样的东西
guard let result = parsedData["result"] as! String else {return}
if parsedData["result"] == "0"{
}
答案 2 :(得分:0)
此代码对我有用
let parsedData = try JSONSerialization.jsonObject(with: data) as! [String:Any]
let key = "result"
let value = parsedData[key] as? Int ?? Int(parsedData[key] as? String ?? "")
print(value!)
let result = value!
if(result == 0){
答案 3 :(得分:-1)
首先将数据转换为int,然后检查此代码。
let num = data as! Int
if num == 1{
print(success)
}