このコードは、以前のバージョンのalamofireでSwift 2.以前に機能していました。現在は警告が表示されます:cast from Result<AnyObject> to Dictionary<String, AnyObject> always fails
。
Alamofire.Manager.sharedInstance.request(.POST, url, parameters:params)
.responseJSON { (request, response, data) -> Void in
var result = data as? Dictionary<String,AnyObject> //this gives an error cast from Result<AnyObject> to Dictionary<String, AnyObject> always fails
辞書へのキャストを機能させるにはどうすればよいですか?
あなたは電話する必要があります:
Alamofire.request(.POST, url, parameters:params)
.responseJSON { request, response, result in
debugPrint(result)
if let value = result.value as? [String: AnyObject] {
print(value)
}
}
更新された [〜#〜] readme [〜#〜] コードサンプルを一読する必要があります。
私はこれに答えるには少し遅すぎることを知っていますが、おそらくこのコードが誰かを助けることができると思うので、私はこれを共有します:
Alamofire.request(url, method: .post, parameters: param, encoding: JSONEncoding.default, headers: nil).responseJSON
{
response in
SVProgressHUD.dismiss()
let data = response.result.value
let responseObject = data as? NSDictionary
switch (response.result)
{
case .success(_):
print(responseObject!["message"] as! NSString as String)
break
case .failure(_):
SVProgressHUD.showError(withStatus: (responseObject!["message"] as! NSString as String))
print(responseObject!["message"] as! NSString as String)
break
}
}
ありがとう、お楽しみください!ハッピーコーディング! :)