2016-11-01 7 views
-1

こんにちは私のxcodeを7から8にアップグレードしました。エラーが発生しています。オブジェクトを反復しようとすると 'subscript'をあいまいに使います。swift 2から3へのアップグレード後に 'subscript'のあいまいな使用

enter image description here

+0

'data'を使用する前に正しい型にキャストしてみませんか?また、Swift 3ではObjective-CのIDが「Any」としてインポートされることにも注意してください。 –

答えて

0

あなたがキーのインデックスと値にアクセスするために、関数に渡しているものの良いアイデアを必要としています。残念なことに、AnyObjectを索引付けすることはできません。 Xcodeにはもっと多くの情報が必要です。あなたは、関数呼び出しを行う前に、あなたが安全にこのような何かを行うことによってそれを最初にアンラップすることができます:あなたは[文字列] [文字列]としてデータを渡すことができるかどうかがわからない場合

func makeDataSource(data:[[String:String]]) { 

    for i in 0..< data.count { 
     print(data[i]["make"] 
    } 
} 

:このような何かを試してみてください:

guard let myData = data as? [[String:String]] else { 
    print("couldn't cast data as [[String:String]]") 
    return 
} 

makeDataSource(data:myData) 

上記のガードステートメントが失敗した場合は、データ配列/辞書にあるオブジェクトタイプをチェックします。複数のものとしてキャストすることができます。たとえば:

as? [[String:String]] 
as? [[Int:String]] 
as? [[String:AnyObject]] 
etc....... 

あなたはそこにありますし、あなたのコードがスムーズに実行すべきものと一致する必要があります。

関連する問題