2016-09-21 3 views
2

Я обновил Alamofire до 4.0 для быстрого 3. (до того, как я использовал AFNetworking).ошибка сегментации: 11, при использовании Alamofire.upload

Мой код:

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 
      } 

    } 

} 

Я получаю ошибку компиляции:

Command failed due to signal: Segmentation fault: 11.

и детали я получаю много мусора путей и трассировки стека (не из моего кода)

и в конце концов:

  1. While emitting SIL for 'uploadImage' at */Network/APIManager.swift:64:5

Это указывает на вышеприведенную функцию.

Любые предложения? Работает любой другой запрос REST (не multipart).

Thanks

ответ

2

В API из multipartFormData изменился.

append метод выглядеть следующим образом (Обратите внимание, что он не возвращает никакого значения):

func append(_ data: Data, withName name: String, fileName: String, mimeType: String)

Вот пример из README в 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) 
     } 
    } 
) 
0

Обновление CocoaPods. Не

pod update 

Я имею в виду обновить весь CocoaPods до версии 1.0.0

+0

я сделал - did not work $ sudo gem update cocoapods Пароль: Обновление установленных драгоценных камней Ничего не обновлено $ pod --version 1.0.1 – ilan

Смежные вопросы