2017-08-07 4 views
1

のための辞書の要素にアクセスする、私は簡単にこのようにデータにアクセスできると思っていた:私は2番目のビューコントローラに辞書を渡すと配列にそれを割り当てたテーブルビュー

var myAlerts: NSDictionary! 

辞書がための3つの要素を持っていますそれぞれ:Id(気にしない)、alertDate、alertNote。

私はにtableViewに、これらの要素を取得しようとしているが、これに苦しんでいます。

私が面倒、ちょうど2つの配列にそれを移動し、そのようにアクセスして考えたが、それは、少なくともいわば、さらに道に私を取得します。それは第二のコントローラに過去後ここ

辞書からの生データである:

{ 
    alerts =  (
       { 
      alertDate = "2017-07-16"; 
      alertNote = "Rob is the worlds greatest friend"; 
      id = 2; 
     }, 
      { 
     alertDate = "2017-07-17"; 
     alertNote = "This is a test of the emergency system"; 
     id = 1; 
     } 
    ); 
} 

私はこの2つの配列に値を移動しようとした場合:

func CreateArray() { 
    for i in 0...myAlerts.count { 
     alertsDate[i] = myAlerts["alerts"]["alertDate"] 
     alertsNote[i] = myAlerts["alerts"]["alertNote"] 
    } 
} 

Iを得ます諺どんなタイプ?添え字メンバーはありません。

ご協力いただければ幸いです。

+0

Beth.Iarson1977アラート応答@ [[文字列:任意]]です。働い –

答えて

0

myAlertsこのデータは、辞書の配列を含む辞書になりました。 (トップレベルは辞書で、キーと値のペアは[String:Any]オブジェクトの配列型です)。

辞書値はAny型であるため、それがキーalertsの値の種類が何であるか、この場合に推測することはできません。だから、この場合の第1の特定のタイプ、辞書の配列にキャストしようとしなければならない、すなわち[[文字列:任意]]

これはあなたのエラーを取り除く必要があります。

func CreateArray() { 
    for i in 0...myAlerts.count { 
     let alertArray = myAlerts["alerts"] as! [[String:Any]] 
     alertsDate.append(alertArray[i]["alertDate"] as! String) 
     alertsNote.append(alertArray[i]["alertNote"] as! String) 
    } 
} 

注意私のデモコードのようにappletsを使用するようにalertsDateとalertsNote配列を変更しなければなりませんでした。配列に既存の項目がなく、インデックスを使用するとエラーが発生しました。

+0

は、あなたのジェイに感謝 - 今私はちょうど今のところそれはまだ私のファニーを蹴っていますLOL tbleViewでそれを取得する方法を見つけ出す必要があります。 –

関連する問題