我使用put方法,用於發送布爾值alamofire,但是當我嘗試打印我的請求返回它從bool值轉換爲一個int。Bool在URL編碼參數編碼爲0和1與Alamofire Swift3
但在我的數據庫中,我真的需要存儲一個布爾值。這裏是我的代碼
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方法返回我:
{ 「狀態」: 「OK」, 「數據」:{ 「雜項」:{ 「beInAnonymousPanel」:「 0" }} }
相反的:
{ 「狀態」: 「OK」, 「數據」:{ 「雜項」:{ 「beInAnonymousPanel」:真 } } }
我找到了一些其他的話題而且在swift3之前,他們沒有得到很好的解決方案。
編輯:我用swiftyjson
大哥檢查你的web服務,這是返回布爾值0或1。如果正確的方法你想得到'true'或'false',那麼你應該從web服務中添加'true或False'作爲'beInAnonymousPanel'的值。 –