Ios 我需要将变量中的值转换为参数
我的变量中的值在它们自己的函数中,我不知道如何将它们取出 我有一个参数Ios 我需要将变量中的值转换为参数,ios,swift,Ios,Swift,我的变量中的值在它们自己的函数中,我不知道如何将它们取出 我有一个参数 让参数=[“出席”:“3”,“原因”:(原因+“”+otherReasonText),“发件人”:日期发件人,“收件人”:日期收件人] 此参数仅在类ViewController中 理由 otherReasonText//位于按钮的iAction内 让otherReasonText:String=leaveTextView.text dateFrom/dateTo//这两者的用途相同,但只是两个不同的日期选择器 我只需要将
让参数=[“出席”:“3”,“原因”:(原因+“”+otherReasonText),“发件人”:日期发件人,“收件人”:日期收件人]
此参数仅在类ViewController
中
让otherReasonText:String=leaveTextView.text代码>
我只需要将这些变量放入参数中,因为我会将该参数作为POST请求发送,但我不知道如何将变量放入参数中。您可以从pickerview、datepicker和textview中获取所选的值,无论您想在哪里
func callAPI() {
let reason = reasonPicker[reasonPickerView.selectedRow(inComponent: 0)]
let otherReasonText = leaveTextView.text!
let dateFrom = fromDatePicker.date
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = DateFormatter.Style.short
let dateFrom = dateFormatter.string(from: datepickerFrom.date)
let dateTo = dateFormatter.string(from: datepickerTo.date)
let parameters = ["attendance": "3", "reason": (reason + " " + otherReasonText), "from": dateFrom, "to": dateTo]
//call api
}
为什么不将变量保存在函数之外?参数位于iAction函数
do{request.httpBody=try JSONSerialization.data(withJSONObject:parameters,options:.prettypted)}catch let error{print(error.localizedDescription)}
和callAPI()参数无法获取其他参数variables@Olufsen你说的“不能得到其他变量”是什么意思?Nvm哈哈,我现在很好,谢谢你,我刚刚把你的代码放在了参数所在的函数中,谢谢
@IBAction func FromDatePicker(_ sender: Any) {
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = DateFormatter.Style.short
let dateFrom = dateFormatter.string(from: datepickerFrom.date)
print(dateFrom)
}
func callAPI() {
let reason = reasonPicker[reasonPickerView.selectedRow(inComponent: 0)]
let otherReasonText = leaveTextView.text!
let dateFrom = fromDatePicker.date
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = DateFormatter.Style.short
let dateFrom = dateFormatter.string(from: datepickerFrom.date)
let dateTo = dateFormatter.string(from: datepickerTo.date)
let parameters = ["attendance": "3", "reason": (reason + " " + otherReasonText), "from": dateFrom, "to": dateTo]
//call api
}