Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 无法在swift 3中设置服务器响应的条件?_Ios_Swift - Fatal编程技术网

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是字符串