我将Alamofire更新为4.0 for swift 3.(在我使用AFNetworking之前)。
我的代码:
func uploadImage(_ image: Data, withURLRequrest urlRequest: URLRequestConvertible, responseCallback: ((NetworkResponse) -> ())? = nil) {
Alamofire.upload(multipartFormData: { multipartFormData in
_ = multipartFormData.appendBodyPart(data: image, name: "imagefile", fileName: "image.jpg", mimeType: "image/jpeg")
}, with: urlRequest) { encodingResult in
switch encodingResult {
case .success(let upload, _, _):
upload.responseJSON { response in
switch response.result {
case .success(let json):
if let responseCallback = responseCallback {
responseCallback(.success(Response(response: json)))
}
case .failure(_): break
}
}
case .failure(let encodingError): break
}
}
}
我收到编译错误:
命令因信号失败:分段错误:11。
并且是细节,我得到了很多垃圾路径和堆栈跟踪(不是来自我的代码)
最后:
- 在* / Network / APIManager.swift:64:5
为'uploadImage'发出SIL 醇>
这指向上面的功能。
有什么建议吗? 任何其他REST请求都在起作用(而不是多部分)。
由于
答案 0 :(得分:2)
multipartFormData
的API已更改。
append
方法现在看起来像这样(请注意,它不会返回任何值):
func append(_ data: Data, withName name: String, fileName: String, mimeType: String)
以下是Alamofire的自述文件中的示例:
Alamofire.upload(
multipartFormData: { multipartFormData in
multipartFormData.append(unicornImageURL, withName: "unicorn")
multipartFormData.append(rainbowImageURL, withName: "rainbow")
},
to: "https://httpbin.org/post",
encodingCompletion: { encodingResult in
switch encodingResult {
case .success(let upload, _, _):
upload.responseJSON { response in
debugPrint(response)
}
case .failure(let encodingError):
print(encodingError)
}
}
)
答案 1 :(得分:0)
更新CocoaPods。不是
pod update
我的意思是将整个CocoaPods更新为1.0.0