2016-10-26 2 views
0

アップロード画像プログラムを変換しようとしています。しかし、停滞していくつかの問題が起こった。
この問題に関するアドバイスが必要です。
ベローズは、以前Alamofire 3とコードAlamofire 3をAlamofire 4に変換できません。いくつかのエラーメッセージが表示されます。

Alamofire.upload(
     .POST, 
     "https://uploadURL", 
     multipartFormData: { multipartFormData in 
      multipartFormData.appendBodyPart(data: imageData!, name: "image", fileName: nowString + "To" + receiverString! + ".jpg", mimeType: "image/jpg") 
      for (key, value) in parameters { 
       multipartFormData.appendBodyPart(data: value!.data(using: String.Encoding.utf8)!, name: key) 
      } 
     }, 
     encodingCompletion: { encodingResult in 
      switch encodingResult { 
      case .success(let upload, _, _): 
       upload.responseString(completionHandler: { (response) in 
        debugPrint(response) 
       }) 

      case .failure(let encodingError): 
       print(encodingError) 
      } 
     } 
    ) 

ベローズはAlamofire 4.0.1のために書き込み電流コードおよびSWIFT 3(不完全) 周り

Alamofire.upload(
     multipartFormData: { multipartFormData in 
      multipartFormData.append(data: imageData!, name: "image", fileName: nowString + "To" + receiverString! + ".jpg", mimeType: "image/jpg") 
      for (key, value) in parameters { 
       multipartFormData.append(data: value!.data(using: String.Encoding.utf8)!, name: key) 
      } 
     },to:"https://uploadURL", 
     encodingCompletion: { encodingResult in 
      switch encodingResult { 
      case .success(let upload, _, _): 
       upload.responseString(completionHandler: { (response) in 
        debugPrint(response) 
       }) 

      case .failure(let encodingError): 
       print(encodingError) 
      } 
     } 
    ) 

"でありますmultipartFormData "エラーメッセージを生成します。

これらの部分一致パラメータで リストが存在する 'を追加' のオーバーロード:(データ、withName:文字列、ファイル名:文字列、MIMEタイプ:文字列)、 (URL、withName:文字列、ファイル名:文字列、MIMEタイプを:文字列)

キャスト 'Any' to 'AnyObject'または 'as'を使用してください。 ...メンバー

私はこの問題の解決策を探しているにアクセスするために、より 特定の型にダウンキャスト強制的に

答えて

0

appendメソッドのシグネチャは少し変更しました。次を使用している:

append(data:name:fileName:mimeType:) 

彼らはスウィフト3 APIの設計ガイドラインに準拠するようにwithNamename引数の名前を変更しました。したがって、次のように使用する必要があります。

append(_:withName:fileName:mimeType:) 

以下のコードを修正してください。

Alamofire.upload(
    multipartFormData: { multipartFormData in 
     multipartFormData.append(imageData!, withName: "image", fileName: nowString + "To" + receiverString! + ".jpg", mimeType: "image/jpg") 
     for (key, value) in parameters { 
      multipartFormData.append(data: value!.data(using: String.Encoding.utf8)!, name: key) 
     } 
    },to:"https://uploadURL", 
     encodingCompletion: { encodingResult in 
     switch encodingResult { 
     case .success(let upload, _, _): 
      upload.responseString(completionHandler: { (response) in 
       debugPrint(response) 
      }) 

     case .failure(let encodingError): 
      print(encodingError) 
     } 
    } 
) 

注:それは代わりにwithNameですので、私は変更さ唯一の事はname引数です。そしてdataラベルを削除しました。

+0

お気軽にお問い合わせください。上記の変更後、引き続きこのエラーメッセージが表示されます - >引数のラベル(data :, withName :, fileName :, mimeType :)は使用可能なオーバーロードと一致しません –

+0

詳細を見落として、データ引数も変更しました。あなたの呼び出しで明示的に名前を付けてはいけません。修正されたコードを更新しました。 – donnywals

+0

コーディングに感謝します!引数のラベルに関する固定のエラー:)しかし、このエラーを修正していない - > "" multipartFormData.append(データ:値!.data(using:String.Encoding.utf8 )!、name:キー) " –

関連する問題