2017-02-13 51 views
0

如果服务器响应是(结果=“帐户存在”),那么我可以做一些事情。但是当我比较结果时会给出一个错误,即“Binary operator'=='不能应用于'Any'和'String'类型的操作数”。如果条件在快速响应ios

let dataTask = session.dataTask(with: url!, completionHandler: { (data, response, error) -> Void in 

     do 
     { 
      let json = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) as! NSDictionary 

      print("JSON : \(json)") 

      if let dataDic = json.value(forKey: "data") 
      { 
      print("dataDic: \(dataDic)") 

      if let Result = (dataDic as AnyObject).value(forKey: "Result") 
      { 
      print("Result: \(Result)") 

       if (Result ("Account Exists")) == 0 
       { 
        //... DO Something 
       } 
      } 
      } 
     } 
     catch 
     { 
      print("Catch exception") 
     } 
    }) 
    dataTask.resume() 
} 
+0

我得到了“无法将类型'__NSSingleObjectArrayI'(0x10d935d60)的值转换为'NSString'(0x10cb46c40)”@ EICaptainv2.0 –

+0

您的回应如何? –

+0

这是JSON数据=( 结果=“未经授权的访问”; } ); } –

回答

0

东西在纯快捷方式..你的“数据”是一个数组,顶级JSON是字典

do 
    { 
     let json = try JSONSerialization.jsonObject(with: data!, options: []) as! [String:Any] 

     if let data = json["data"] as? [[String:String]] { 
      if let resultString = data.first?["Result"] as? String{ 
       if resultString == "Account Exists"{ 
        //... DO Something 
       } 
       else if resultString == "Unauthorized Access" { 
        //... DO Something 
       } 
      } 
     } 
    } 
    catch{ 
     print("Catch exception") 
    } 
+0

它有效。谢谢@ EICaptainv2.0 –

+0

很高兴它帮助..快乐2帮助你:) –

0

请在下面更新您的代码,并检查它

if (Result ("Account Exists") as! String) == "0" 
{ 
     //... DO Something 
} 
+0

我收到此错误“无法调用非函数类型的值'字符串'”@Sunil prajapati –

+0

请参阅我更新了我的答案 –

0

如果您Result是一个字符串,你需要相应地拆开包装,然后进行比较,可以实现比较而展开本身,你可以像

if let Result = (dataDic as AnyObject).value(forKey: "Result") as? String, Result == "Unauthorized Access" 
{ 
    print("Result: \(Result)") 
    // DO whatever you want here in case of Unauthorised access 
}