You have to tell the compiler what the intermediary object is in the line
let obj = jsonResult["levels"]![i] as! NSDictionary
After the statement jsonResult["levels"]!
the compiler does not know what kind of object he is dealing with. You have to tell it that is an NSArray
or something else:
let obj = (jsonResult["levels"] as! NSArray)[i] as! NSDictionary
Of course you should additionally make sure that you can actually do all that casting and that the objects inside the json are really of the expected type.
Even a little bit shorter using only one cast by directly casting to an array of NSDictionary
:
let obj = (jsonResult["levels"] as! [NSDictionary])[i]
The reasoning remains the same: you tell the compiler of what type jsonResult["levels"]
. It is supposed to be an array containing NSDictionary
s.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…