【发布时间】:2017-11-28 11:58:30
【问题描述】:
我是快速编程的新手。我正在尝试通过 alamofire 进行多部分请求。问题是我的参数中的一个值是对象数组。我的问题是如何将对象数组附加到多部分请求。 这是我的参数。
let parameters = [
"originguid":"63d6sd5",
"signees":[Signess], //Here is issue "signees"is an array of objects
"customer":"yes"
] as [String : Any]
这是我的要求
Alamofire.upload(
.POST,
URLString: myUrl,
multipartFormData: { multipartFormData in
if let img = self.imagePicked {
multipartFormData.append(UIImageJPEGRepresentation(img, 0.2)!, withName: "fileset",fileName: "file.png", mimeType: "image/jpg")
}
if let file = self.filePicked{
let fileData = try! Data(contentsOf: file)
multipartFormData.append(fileData as Data, withName:"test.pdf", mimeType:"application/pdf")
}
for (key, value) in parameters {
if key == "signees"{
multipartFormData.append((value as AnyObject).data(using: String.Encoding.utf8.rawValue)!, withName: key)
}
else{
multipartFormData.append((value as AnyObject).data(using: String.Encoding.utf8.rawValue)!, withName: key)
}
}
},
...
)
将签名者附加到多部分请求时应用程序崩溃。 这是我在参数中使用的对象。
class Signee: NSObject, NSCoding {
var name = ""
var email = ""
var phoneNo = ""
func encode(with aCoder: NSCoder) {
aCoder.encode(name, forKey: "name")
aCoder.encode(email, forKey: "email")
aCoder.encode(phoneNo, forKey: "phoneNo")
}
init(name: String, email: String, phone: String) {
self.name = name
self.email = email
self.phoneNo = phone
}
required convenience init(coder aDecoder: NSCoder) {
let name = aDecoder.decodeObject(forKey: "name") as! String
let email = aDecoder.decodeObject(forKey: "email") as! String
let phoneNo = aDecoder.decodeObject(forKey: "phoneNo") as! String
self.init(name: name, email: email, phone: phoneNo)
}}
请帮忙。在此先感谢,我浪费了两天时间尝试不同的东西。
【问题讨论】:
-
为什么不对字符串使用编码字节编码
-
抱歉没看懂
-
你应该添加基本类型的键值对,例如Int、String等
-
我的问题是如何将对象数组附加到多部分请求中。
标签: ios swift alamofire multipartform-data