URL编码参数中的布尔值在Swift3中使用Alamofire编码为0和1

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了URL编码参数中的布尔值在Swift3中使用Alamofire编码为0和1相关的知识,希望对你有一定的参考价值。

我使用带有put方法的alamofire来发送bool值,但是当我尝试打印请求的返回值时,它会从bool值转换为int。

但是,在我的数据库中,我真的很想储备一个布尔值。这是我的代码

func sendNewData(key:String, index: Int, value: Bool, sectionName: String) -> Void 
    let url:String = "\(self.API_URL_BASE)\(API_URL_SETTINGS)"

    var parameters: Parameters
    parameters = [
        sectionName: [
            key: value,
        ]
    ]
    Alamofire.request(url, method: .put, parameters: parameters, headers: Api.headers).responseJSON
     response in
        if (response.error == nil)
        
            let json = JSON(response.result.value!)
            if (json["status"].stringValue == "ok")
            
                self.getSettings()
            
        
        else
        
            print(response.error)
        
    


func getSettings() -> Void 
    let url:String = "\(self.API_URL_BASE)\(API_URL_SETTINGS)"
    Alamofire.request(url, method: .get, headers: Api.headers).responseJSON
         response in
            if (response.error == nil)
            
                let json = JSON(response.result.value!)
                print(json)
            
            else
            
                print(response.error as Any)
            
    

getSettings方法返回我:

“ status”:“确定”,“数据”:“杂项”:“ beInAnonymousPanel”:“ 0”

而不是:

“ status”:“确定”,“数据”:“杂项”:“ beInAnonymousPanel”:true

我发现了其他一些话题,而且该话题还早于swift3,他们没有好的解决方案。

编辑:我使用swiftyjson

答案

我终于找到了答案,我忘了编码参数:

    Alamofire.request(url, method: .put, parameters: parameters, encoding: JSONEncoding.default,  headers: Api.headers).responseJSON
     response in.. 
另一答案

您可以解析它,将int转换为bool并保存或使用它。像这样转换:

let intVar = 1
let boolVar = Bool(intVar as NSNumber)

print(boolVar) // true
另一答案

这将起作用

var SearchParams= ["id":"123","iSActive": false] as [String : Any]

以上是关于URL编码参数中的布尔值在Swift3中使用Alamofire编码为0和1的主要内容,如果未能解决你的问题,请参考以下文章

java布尔值在被调用方法中没有改变[重复]

在 Swift3 中将查询参数添加到 iOS 中的 GET url

mysqli_fetch_array() 期望参数 1 为 mysqli_result,布尔值在 [重复]

AlamoFire 4.X 中的 URL 编码

Python 布尔值在数据库怎么显示

Swift3,无法使用查询参数定义URL