1

Swift3 と最新の Alamofire '~> 4.0' に更新しました。パラメーターを作成しようとすると、設定していない設定<null>の代わりに取得するようになりました。nullこれは私のバックエンドと競合します。

送る方法はありますnullか?

値を nil に設定するとput、辞書に含まれず、削除されます。しかし、すべての値を送り返す必要があります。

私のコード

func saveOfficeHours(days: [OfficeHours]) {
  guard let URL = LocationInfo.shared.url else {
    assertionFailure("location URL is nil")
    return
    }

  let formatter = DateFormatter()
  formatter.dateFormat = "HH:mm:ss"

  func formatTime(time: Date?) -> Any {
      guard let time = time else { return NSNull() }
      return formatter.string(from: time)
  }

  var parameters: [String: Any] = [:]
  for week in days {
    parameters["\(week.day)_hours_start"] = formatTime(time: week.hoursStart)
    parameters["\(week.day)_hours_stop"] =  formatTime(time: week.hoursEnd)
    parameters["\(week.day)_lunch_hours_start"] =  formatTime(time: week.lunchStart)
    parameters["\(week.day)_lunch_hours_stop"] =  formatTime(time: week.lunchEnd)
    parameters["\(week.day)_break_hours_start"] =  formatTime(time: week.breakStart)
    parameters["\(week.day)_break_hours_stop"] =  formatTime(time: week.breakEnd)
  }

  Alamofire.request(URL, method: .put, parameters: parameters, encoding: URLEncoding.httpBody, headers: API.workstationTokenAuthHeaders()).validate().responseJSON {
    response in
    switch response.result {
    case .success:
        print("Success setting office hours")
    case .failure(let error):
        print("Failure setting office hours: \n \n -------==========-------- \n \n\(error)\n \n -------==========-------- \n")
    }
  }
}

事前にご協力いただきありがとうございます。

4

1 に答える 1