Pra*_*mar 10 parameters post swift alamofire
我想传递一个nil值,即可选参数值之一.并且必须在Alamofire Post请求中继续使用nil值.如果你告诉我下一步该如何进行会有所帮助吗?
let image: UIImage = UIImage()
let imageData = UIImagePNGRepresentation(image)
let base64String = imageData?.base64EncodedStringWithOptions(.Encoding64CharacterLineLength)
let parameters = [
"first_name": "XXXXX",
"email" : "1234@gmail.com",
"password" : "password",
"profile_picture" : base64String]
Alamofire.request(.POST, "http://abc/public/user/register", parameters: parameters, encoding: .JSON, headers: nil)
.progress { bytesWritten, totalBytesWritten, totalBytesExpectedToWrite in
print(totalBytesWritten)
// This closure is NOT called on the main queue for performance
// reasons. To update your ui, dispatch to the main queue.
dispatch_async(dispatch_get_main_queue()) {
print("Total bytes written on main queue: \(totalBytesWritten)")
}
}
.responseJSON { response in
debugPrint(response)
}
Run Code Online (Sandbox Code Playgroud)
即使profile_pictures为空,响应也应该成功.我知道可以通过可选链接完成,但不知道如何继续!
通过传递nil或未初始化的可选参数Server将获得Optional
您可以将NSNull()传递给字典
试试这个,就像
var params = ["paramA","valueA"] if imageBase64 == nil { parms["image"] = NSNull()} else { params["image"] = imageBase64 }
Run Code Online (Sandbox Code Playgroud)
swiftyjson也将null作为NSNull处理
Sah*_*hil -1
希望对你有帮助 :)
var parameters :[String : AnyObject?] = [
"first_name": "XXXXX",
"email" : "1234@gmail.com",
"password" : "password"]
if let string = base64String where base64String.isEmpty != false {
parameters["profile_picture"] = string
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5364 次 |
| 最近记录: |