Swift类型为“AnyObject?”的循环值没有会员“发电机” [英] Swift For Loop Value of type 'AnyObject?' has no member 'Generator'
本文介绍了Swift类型为“AnyObject?”的循环值没有会员“发电机”的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试这样做,但是有人说:
$ b
类型'AnyObject?'的值没有成员'Generator'
所以这是我的代码。
let dataDictionary:NSDictionary = try NSJSONSerialization.JSONObjectWithData(responseObject as!NSData,options:NSJSONReadingOptions.MutableContainers)as! NSDictionary
var customerArray = dataDictionary.valueForKey(kart)
for js:customerArray中的NSDictionary {
let nameArray:NSArray = js.valueForKey(name)
}
我做错了什么,我没有弄清楚。谢谢你的帮助。
解决方案您的
customerArray
是可选的,它的类型为 AnyObject?
(这是因为 .valueForKey
返回一个可选项)。你不能遍历一个可选的。解决方法是在安全展开的情况下将结果转换为数组: 如果让customerArray = dataDictionary.valueForKey(kart)as ? NSArray {
为customerArray中的js {
let nameArray = js.valueForKey(name)
// ...
}
}
I am trying to do this but it's says
Value of type 'AnyObject?' has no member 'Generator'
So this is my code.
let dataDictionary:NSDictionary = try NSJSONSerialization.JSONObjectWithData(responseObject as! NSData, options: NSJSONReadingOptions.MutableContainers) as! NSDictionary
var customerArray = dataDictionary.valueForKey("kart")
for js: NSDictionary in customerArray {
let nameArray: NSArray = js.valueForKey("name")
}
What I am doing wrong.I didn't figure out.Thank you for your helps.
解决方案
Your customerArray
is an Optional, it has the type AnyObject?
(this is because .valueForKey
returns an Optional). You can't loop over an Optional. Solution is to cast the result as an array while safe unwrapping:
if let customerArray = dataDictionary.valueForKey("kart") as? NSArray {
for js in customerArray {
let nameArray = js.valueForKey("name")
// ...
}
}
这篇关于Swift类型为“AnyObject?”的循环值没有会员“发电机”的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文