Ios 无法在swift 3中设置服务器响应的条件?
这里我得到的响应是字符串(对或错)通过使用这个,我需要在服务器上设置一个条件,比如如果Ios 无法在swift 3中设置服务器响应的条件?,ios,swift,Ios,Swift,这里我得到的响应是字符串(对或错)通过使用这个,我需要在服务器上设置一个条件,比如如果jsonObj为真,那么它需要执行一些事情,如果不是,它应该执行一个不同的事情,但是在设置一个条件之后,这里显示了一个错误,二进制运算符不能应用于此行所示的“String”和“Bool”类型的操作数ifjsonObj==true{谁能帮我设置条件来检查它是真是假 func customerItemsDeleteDownloadJsonWithURL(customerItemsAPI: String){ l
jsonObj
为真,那么它需要执行一些事情,如果不是,它应该执行一个不同的事情,但是在设置一个条件之后,这里显示了一个错误,二进制运算符不能应用于此行所示的“String”和“Bool”类型的操作数ifjsonObj==true{
谁能帮我设置条件来检查它是真是假
func customerItemsDeleteDownloadJsonWithURL(customerItemsAPI: String){
let url = URL(string: customerItemsAPI)
var request = URLRequest(url: url! as URL)
request.httpMethod = "DELETE"
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("Bearer \(self.customerKeyToken!)", forHTTPHeaderField: "Authorization")
let task = URLSession.shared.dataTask(with: request) { (data, response, error) in
if error != nil { print(error!); return }
do {
if let jsonObj = String(data: data!, encoding: .utf8) {
print(jsonObj)
DispatchQueue.main.async {
if jsonObj == true{
}
else{
}
}
}
}
catch {
print(error)
}
}
task.resume()
}
根据数据
输出,响应是一个简单的字符串
,而不是JSON
、Bool
或其他数字表示
所以只要加上双引号
if jsonObj == "true" { ...
旁注:不需要将此比较分派给主线程。二进制运算符不能应用于“String”类型的操作数,“Bool”表示您正在使用布尔值检查字符串。如果jsonObj始终是字符串,则如果jsonObj==“true”,则可以尝试这种方法您应该根据响应将数据序列化为字典或数组。您将其设置为字符串,并尝试将其用作布尔值。类似于:let dicsresponse=try?JSONSerialization.jsonObject(with:data!,options:JSONSerialization.ReadingOptions.allowFragments)as!NSDictionaryit是指向的字符串。响应为true或false,而不是任何字典或数组@sharadchauhan@user4261201那么你怎么说它的JSON呢?如果它是一个字符串,那么就比较字符串。就像user4261201所说的那样。@sharadchauhan我们可以从这行“if let jsonObj=string(data:data!,encoding:.utf8)”中观察到jsonObj是字符串