2016-09-10 7 views
10

Swift 3とAlamofire 4.0を使用しています。私は全体の応答を印刷することができますが、各値をループして印刷するのに問題があります。私は "タイプ『NSFastEnumerationIterator.Element』を取得しています(別名『どれ』)私は以下の『タイトル』をプリントアウトしようとすると、何の添字のメンバーを持っていません。すべてのヘルプは大歓迎です。Swift 3 JSON NSFastEnumerationIteratorには下付き文字がありません

Alamofire.request(url).responseJSON { response in 
     if let dict = response.result.value as? Dictionary<String, AnyObject> { 
      if let datas = dict["data"] as? NSArray{ 
       for data in datas{ 
        print("DEVELOPER: \(data)") 
         if let title = data["myTitle"] as? String{ 
          print(title) 
         } 

       } 
      } 
     } 
    } 
+0

質問が正しく表示されません。 – Lion

+0

@KetanParmar "NSFastEnumerationIterator.Element '(別名' Any ')に添字のメンバーがありません"というエラーが表示されます。エラーは、「タイトル」を印刷しようとしているときに発生します。 – kelsheikh

答えて

29

ちょうどスウィフトArrayネイティブ使用しますあなたは絶対に選択肢がない場合は除きます。常にスウィフトネイティブ型を使用してください。NSArrayは、コンパイラが配列の辞書が含まれていることを推測することはできませんので、情報を入力欠けている。

if let datas = dict["data"] as? [[String:Any]] { 
+0

ありがとうございました、それは絶対にそれでした。 – kelsheikh

+0

この回答をありがとうございました!!! – Hiren

0

時にはあなたが構造化として、あなたがする必要があるすべてをあなたのデータを保持したいです辞書自体をチェックする

for apple in apples { 
if let _ = apple as? [String:AnyObject] { 
// do whatever you like here 
    } 
} 
+0

私は同意しますが、配列[[String:AnyObject]]を使用すると、それに接続されているすべての便利な機能が無効になります。インデックスの追加、削除、検索など – Giggs

関連する問題