2017-01-16 12 views
0

は私がSwift3/Alamofire4の移行、

parameters = ["name":name, "description":description, "location":location, "start_time":start_time , "end_time":end_time/* ..etc */] as [String: AnyObject] 

Alamofire.request(.PUT, url, parameters: parameters, encoding: .json, headers: ["Authorization": auth_token, AppVersionKey: AppVersionValue]).validate().responseJSON() { response in 

    print("Status code of default pic call: \(response.response?.statusCode)") 
      } 

前にうまく働いた前のスウィフト/ Alamofireバージョンから古いコードを持っている私は私が今持っている知っています

Alamofire.request(url, method: .put, ... , encoding: JSONEncoding.default ...) 

にそれを切り替えることしかし、私はparametersのためのXcodeのエラーを取得していますし、修正が-それだけのkの各値にas AnyObjectを追加され、その後、「発現をもたらすVペアがあるには余りにも複雑でした合理的な時間に解決... "エラー。新しいSwift3とAlamofire4でこれをどうやってやるのですか?これはスウィフトエラーまたはAlamofire移行問題

+0

[Alamofireパラメータの可能な複製は\ [String:Anyobject \]ですか?](http://stackoverflow.com/questions/31733630/alamofire-parameter-only-accepts-string-anyobject) – dirtydanee

答えて

1

ある場合は、コンパイラが文句を言っている理由である[String: AnyObject]のタイプのリテラル[String: Any]キャストでparametersに代入しているにもわかりません。

割り当ての最後にキャストを削除し、parametersのタイプを[String: Any]に更新すると効果があります。

これはSwift 3の変更によるものです。これは、多くの以前の用途AnyObjectAnyに置き換えたので、構造体と列挙型も受け入れられるためです。