typealias
typealias JSON = [String:Any?]
这是我的字典
var createAfterStr: String? = nil
var createBeforeStr: String? = nil
if let createdAfter = statesByScope.createdAfter, let afterStr = toString(date: createdAfter) {
createAfterStr = afterStr
}
if let createdBefore = statesByScope.createdBefore, let beforeStr = toString(date: createdBefore) {
createBeforeStr = beforeStr
}
let params: JSON = [
"scope_id": statesByScope.scopeId,
"createdAfter" : createAfterStr ?? nil,
"createdBefore" : createBeforeStr ?? nil,
"limit" : "4"]
当我发送它作为参数curl请求时。我似乎是网址:
var request = URLRequest(baseUrl: baseUrl, path: path, method: method, params: params)
request.setValue(token, forHTTPHeaderField: "Authorization")
var urlrequst : URLRequest?
do{
urlrequst = try Alamofire.JSONEncoding.default.encode(request, with: params)
}catch let error {
completion(nil, ServiceError.custom(String(describing: error)))
}
print(urlrequst)
它与Optional
真正有线连接。
所以如何打开包装 字典可选值?还是我想念什么?谢谢
答案 0 :(得分:1)
不要那样做。 JSON字典从不具有可选值。
使用不同的非可选值创建params
,然后添加可以为nil
的键/值对。
如果createAfterStr
或createBeforeStr
为nil
,则会跳过该密钥。
typealias JSON = [String:Any]
var params: JSON = ["scope_id": statesByScope.scopeId, "limit" : "4"]
params["createdAfter"] = createAfterStr
params["createdBefore"] = createBeforeStr