【发布时间】:2018-09-24 03:10:01
【问题描述】:
我已经收集了关于我之前的SO Question 关于如何在 ALamofire 中使用 PUT 请求的解决方案,并使用下面的解决方案。
func updateParticipant(updateType: UpdateParticipantType,
participantID: String,
completionHandler: @escaping ( (_ result:Any?, _ error:Error?) -> Void)) {
let updateParticipantURL = URL(string: "\(REGISTER_PARTICIPANT_URL)/\(participantID)")
let headers: HTTPHeaders = [
"Content-Type": "application/json",
"accept": "application/json"
]
let parameters: [String : Any] = [
"registered_flag": true,
"registration_type": 1
// "out_flag": true
]
Alamofire.request(updateParticipantURL!, method: .put, parameters: parameters, encoding: JSONEncoding.default, headers: headers).validate().responseJSON { (response) in
print(response)
switch response.result {
case .success:
print("Done")
if let success = response.result.value as? [[String : Any]]{
completionHandler(success, nil)
}
case .failure(let error):
completionHandler(nil, error)
}
}
}
我现在的问题是,如果活动参与者使用下面的json 结帐,我该如何更新记录。
{
"out_flag": true
}
使用相同的 API 函数 updateParticipant 因为当我尝试插入时
let parameters: [String : Any] = [
"registered_flag": true,
"registration_type": 1
"out_flag": true
]
参与者在注册后会自动签出。这是错误的,因为在实际事件中,参与者应该先注册并签到。它检查事件是否完成。希望你能帮助我解决这个问题。我是 swift 新手,对我第一次遇到的事情感到很困惑。非常感谢。
【问题讨论】:
-
什么是
updateType?您目前没有使用它。但我认为您可以处理添加/删除out_flag参数。 -
@Kamran 。 .
updateType用于枚举UpdateParticipantType、enum UpdateParticipantType: String { case checkIn = "Check In" case checkOut = "Check Out" }。我将如何构建代码?