2016-09-17 14 views
1

Swift 3にアップデートしましたが、このエラーが発生し、解決できません。Swift 3:エラー:タイプ 'Any'に添え字がありません

Type 'Any' has no subscript member

私はすでに答えを読む:

39480150 -

39516199しかし、私は答えと私の問題を解決することができませんでした - 38956785を。

これは私のコードです:

let pathperdataselezionata = Bundle.main.path(forResource: "Annuale", ofType: "plist") 
let dictperdataselezionata = NSDictionary(contentsOfFile: pathperdataselezionata!) as![String:AnyObject] 
let valoridataodierna = dictperdataselezionata[annoscelto]?[mesescritto]?![daymonth?] as? [Double] 
let Grad = Int(valoridataodierna![0]) 
let Ampo:Double = valoridataodierna![1] 

そして、私はライン上のエラーを取得:

let valoridataodierna 

すべてのヘルプは本当に感謝しています。

ありがとうございました。

+0

[String:AnyObject]に3つの下付き文字があります。 Isは[String:[AnyObject]]であるはずですか? – Shades

+1

コンパイラは** all **添字付きオブジェクトの種類を知る必要があります。また、データはバンドル内のファイルから取得されるため、なぜ疑問符を使用しますか?ランタイムエラーが発生した場合、あなたのデザインは非常に悪いです。 – vadian

答えて

2

このようにしてください。

+0

これは私の問題を解決しました。どうもありがとう。私の評判のため、私は答えを受け入れることができません。 – Aldo

+0

ウェルカイトメイト:) –

0

Appleの推奨は、多くの変数を使用するように見えます。Working with JSON in Swiftを参照してください。

if let pathperdataselezionata = Bundle.main.path(forResource: "Annuale", ofType: "plist"), 
    let dictperdataselezionata = NSDictionary(contentsOfFile: pathperdataselezionata) as? [String: Any], 
    let dictAnnoscelto = dictperdataselezionata[annoscelto] as? [String: Any], 
    let dictMesescritto = dictAnnoscelto[mesescritto] as? [String: Any], 
    let daymonth = daymonth, 
    let valoridataodierna = dictMesescritto[daymonth] as? [Double] 
{ 
    let Grad = Int(valoridataodierna[0]) 
    let Ampo:Double = valoridataodierna[1] 
} 
関連する問題