{"title":"exampleTitle","hashTags":[{"name":"tag1"},{"name":"tag2"}],"uploadFiles":
[{"fileBytes":"seriesOfBytes\n","filename":"upload.txt"}]}
Run Code Online (Sandbox Code Playgroud)
这是我想要发送到后端的我想要的身体.
我正在使用Swift 3.0和Alamofire 4,我有很多问题.
首先,我如何正确创建包含值和值数组的主体?
我的方法是:
let para:NSMutableDictionary = NSMutableDictionary()
para.setValue("exampleTitle", forKey: "title")
let jsonData = try! JSONSerialization.data(withJSONObject: para, options: .init(rawValue: 0))
let jsonString = NSString(data: jsonData, encoding: String.Encoding.utf8.rawValue) as! String
print(jsonString)
Run Code Online (Sandbox Code Playgroud)
这给了我
{"title":"exampleTitle"}
Run Code Online (Sandbox Code Playgroud)
第二,我的alamofire .post请求如下所示,并且不起作用:
Alamofire.request(postURL, method: .post, parameters: jsonString, encoding: JSONEncoding.default)
.responseJSON { response in
debugPrint(response)
}
Run Code Online (Sandbox Code Playgroud)
我收到错误消息:调用中的额外参数'方法'.如果我而不是jsonString使用该类型的字符串
var jsonString: [String : Any]
Run Code Online (Sandbox Code Playgroud)
它确实有效,但我不知道如何将身体放入这种类型.
总结 寻找帮助(例如将是最好的)如何创建身体,以及如何通过Alamofire 4和swift 3发送到我的后端.
我想以DD.MM.YYYY HH:mm:ss作为字符串获取我的日期.
我使用以下扩展名:
extension Date {
var localTime: String {
return description(with: Locale.current)
}
}
Run Code Online (Sandbox Code Playgroud)
我的datePicker更改时的以下代码:
@IBAction func datePickerChanged(_ sender: UIDatePicker) {
dateLabel.text = datePicker.date.localTime
let formatter = DateFormatter()
formatter.dateFormat = "dd.MM.yyyy hh:mm"
let TestDateTime = formatter.date(from: datePicker.date.localTime)
}
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我使用 didPickDocumentAt 函数来检索 DocumentPickerViewController 中所选文件的 url。我有一个分段上传功能,它使用 alamofire 将文件上传到后端。
func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentAt url: URL) {
print(url)
uploadMultipartFile()
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:如何获取我选择的文件的数据表示,以便将其传递给我的 uploadMultipartFile 函数?
文件可以是 pdf、.docx 或任何类型的文件。方法是什么?
multipart ios swift alamofire uidocumentpickerviewcontroller
我使用以下代码来确保当用户打开键盘时,它会缓慢打开并将视图向上推。
func keyboardWasShown(notification: NSNotification){
tableViewChat?.tableView.isScrollEnabled = true
let info2 = notification.userInfo!
let keyboardFrame: CGRect = (info2[UIKeyboardFrameEndUserInfoKey] as! NSValue).cgRectValue
UIView.animate(withDuration: 4, animations: { () -> Void in
self.bottomConstraint.constant = keyboardFrame.size.height - self.navigationController!.navigationBar.frame.height
})
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,一切都像魅力一样发挥作用。现在我想在动画完成后执行这一行。
self.tableViewChat?.scrollToLastRow(animationBool: true)
Run Code Online (Sandbox Code Playgroud)
如果动画未完全执行,则表视图将无法向下滚动足够的距离。animate执行后如何执行scrollToLastRow?
感谢您的帮助和评论!
swift ×4
ios ×3
alamofire ×2
swift3 ×2
date ×1
datepicker ×1
dictionary ×1
json ×1
multipart ×1
scroll ×1
uidocumentpickerviewcontroller ×1
uikit ×1