2017-05-29 4 views
-2

このコード行を使用するとアプリケーションがクラッシュします。問題をキャストする辞書を配列に

self.cartProducts = responceDictionary!["result"] as! [AnyObject] 

responceDictionary IがAnyObjectとして、配列に格納する必要がJSONデータです。

誰かが正しい方向に向けるでしょうか?

+1

をあなたは配列に辞書をキャストすることはできません、種類は関係ありません。オブジェクトが辞書であるとされている場合、それを辞書にキャストするのはどうですか?あなたの質問は[this one](https://stackoverflow.com/questions/43803668/parsing-json-returns-nil)に関連していますか? – vadian

+0

回答の形式を追加してください。あなたがそれを配列にキャストすることはできない辞書だと@vadianは言っています。 – piyuj

+0

@vadian私は 'result'は配列だと信じています。 –

答えて

0

キーresultの値が最も可能性の高い辞書です。

リモートソースからのデータは、感嘆符を避け、安全にoptionalsをアンラップ受信中:

if let responce = responceDictionary, let result = responce["result"] as? [String:Any] { 
    print(result) 
    // go on extracting data from result 
] 
+0

[String:Any]とAnyObjectの間に衝突が生じるので、どのようにcartProductsに 'result'を割り当てますか? – Minimoore26

+0

'cartProducts'が配列の場合、' result'を代入することはできません。 JSONを読み、 'result'辞書から目的の配列を抽出する必要があります – vadian

+0

私は分かりませんか? 'result'辞書のすべてのデータが必要です – Minimoore26

0

これを試してみてください:コメントで述べたように

guard let cartProducts = responceDictionary?["result"] as? [AnyObject] else { return } 
self.cartProducts = cartProducts 
関連する問題