分段错误:11,使用Alamofire.upload时

时间:2016-09-21 10:42:18

标签: ios swift alamofire xcode8

我将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。

并且是细节,我得到了很多垃圾路径和堆栈跟踪(不是来自我的代码)

最后:

  
      
  1. 在* / Network / APIManager.swift:64:5
  2. 为'uploadImage'发出SIL   

这指向上面的功能。

有什么建议吗? 任何其他REST请求都在起作用(而不是多部分)。

由于

2 个答案:

答案 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