Dictionary 如何打开字典可选值?

Dictionary 如何打开字典可选值?,dictionary,swift3,Dictionary,Swift3,具有可选值的字典键的typealias typealias JSON = [String:Any?] 这是我的字典 var createAfterStr: String? = nil var createBeforeStr: String? = nil if let createdAfter = statesByScope.createdAfter, let afterStr = toString(date: createdAfter) { creat

具有可选值的字典键的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)
这是真正的有线部分与可选的

那么如何打开包装呢
词汇可选值?还是我错过了什么?谢谢,别那么做。JSON字典从来没有可选值

使用不同的非可选值创建参数,然后添加可以为nil的键/值对。 如果createAfterStr或createBeforeStr为零,则将跳过该键

typealias JSON = [String:Any]

var params: JSON = ["scope_id": statesByScope.scopeId, "limit" : "4"]
params["createdAfter"] = createAfterStr
params["createdBefore"] = createBeforeStr

你应该阅读语言指南。createAfterStr??nil如果createAfterStr为nil,则使用默认值nil。。。这并不意味着sense@Alexander谢谢更新我的问题,希望它现在会清楚。如果你喜欢,请投票