【发布时间】:2020-11-09 12:57:33
【问题描述】:
我在下面有 Alamofire POST 请求,我的参数值是可选的。我想允许用户调用这个 API 来设置所需的参数,即使它是 NULL(它有点重置为空的默认值)。
这是我的请求,参数status 是一个可选变量,它应该接受空值:
let URL_UPDATE_STATUS = URL_HOME + "/v1/updateStatus/" + dataId
let parameters: [String : Any] = ["status": status as Any]
Alamofire.request(URL_UPDATE_STATUS, method: .post, parameters: parameters, encoding: URLEncoding(destination: .queryString), headers: self.headers).responseString { response in
switch response.result {
case .success:
print("[Log] Update Status Success")
case .failure(let error):
print("[ERROR] UpdateStatus - \(error)")
APIErrorHandler(response: response, error: error)
}
}
但是,我尝试了几次,它总是返回一些错误。我试图是可选的,但我发现它没有被插值(即它变成"Optional(\"SOME_STATUS\")")。当我试图强制解开字符串时,那些空值会导致致命错误。而且,我尝试了将 null 作为请求参数的值传递的方法,但它仍然不起作用。
我不明白我应该如何解决它,有人可以帮忙吗?非常感谢!
【问题讨论】:
-
如果 Optional 值为 nil,那么您将强制将 nil 值强制转换为 Any ,这会使其崩溃。
let parameters: [String : Any] = ["status": status as Any] -
谢谢@Same7Farouk!我试图强制转换
nil,因为它会使参数值看起来像"Optional(\"SOME_STATUS\")"...
标签: ios swift post alamofire optional