このエラーには問題があります。タイプ 'NSFastEnumerationIterator.Element'には添え字メンバーがありません
このコードをトレーニングする方法を教えてください。
ご協力いただければ幸いです。
//これはJSONデータです。
{
"boxOfficeResult":{
"boxofficeType":"일별 박스오피스",
"showRange":"20161020~20161020",
"dailyBoxOfficeList":[
{
"rnum":"1",
"rank":"1",
"rankInten":"0",
"rankOldAndNew":"OLD",
"movieCd":"20153444",
"movieNm":"럭키",
"openDt":"2016-10-13",
"salesAmt":"1452501900",
"salesShare":"60.2",
"salesInten":"-85908900",
"salesChange":"-10",
"salesAcc":"23329189948",
"audiCnt":"193801",
"audiInten":"-11203",
"audiChange":"-10",
"audiAcc":"2879481",
"scrnCnt":"968",
"showCnt":"4961"
}, ...
//これはコードです。
let dailyBoxOfficeList = boxOfficeResult["dailyBoxOfficeList"] as! [[String: Any]]
はスウィフト3では、NSArray
の要素型がAny
となっており、このような何かに
let dailyBoxOfficeList = boxOfficeResult["dailyBoxOfficeList"] as! NSArray
:
はvar list = Array<MovieVO>()
override func viewDidLoad() {
let apiURI = NSURL(string: "http://www.kobis.or.kr/kobisopenapi/webservice/rest/boxoffice/searchDailyBoxOfficeList.json?key=a7497a5e700fdff2f3fd468b604d9d18&targetDt=20161020")
let apidata : NSData? = NSData(contentsOf: apiURI! as URL)
NSLog("result = %@", NSString(data: apidata! as Data, encoding: String.Encoding.utf8.rawValue)!)
do {
let apiDictionary = try JSONSerialization.jsonObject(with: apidata! as Data, options: []) as! NSDictionary
let boxOfficeResult = apiDictionary["boxOfficeResult"] as! NSDictionary
let dailyBoxOfficeList = boxOfficeResult["dailyBoxOfficeList"] as! NSArray
var mvo : MovieVO
for row in dailyBoxOfficeList {
mvo = MovieVO()
mvo.rank = row["rank"] as? String // error occur
mvo.movieNm = row["movieNm"] as? String
mvo.openDt = row["openDt"] as? String
mvo.audiCnt = row["audiCnt"] as? String
self.list.append(mvo)
}
} catch {
}
}
コンパイラは、 'row'が文字列を添字にできる辞書であることをどのように知っていますか? – Alexander