无法在Swift 4中计算或迭代结构的数组
在Swift 4中,我创建了struct无法在Swift 4中计算或迭代结构的数组,swift,xcode,swift4,Swift,Xcode,Swift4,在Swift 4中,我创建了structVybe,一个Vybe数组和一个字典 struct Vybe { let monthDay: String let category: String let description: String } var listVybe:[Vybe] = [] var dictVybe = [AnyHashable:Any]() 然后按日期字符串将其分组 self.dictVybe=Dictionary(分组
Vybe
,一个Vybe
数组和一个字典
struct Vybe {
let monthDay: String
let category: String
let description: String
}
var listVybe:[Vybe] = []
var dictVybe = [AnyHashable:Any]()
然后按日期字符串将其分组
self.dictVybe=Dictionary(分组:self.listVybe){$0.monthDay}
这使我成功地将结构分组到一个数组中。但是,我无法对该数组进行计数或迭代。尝试for循环时,我收到一个错误:键入“Any”不符合协议“Sequence”
。如何循环或计数这组数组
一些调试打印:
print("\(type(of: self.dictVybe["Monday, Jul 16"]!)) ,\(#function)")
print((self.dictVybe["Monday, Jul 16"]))
输出:
数组做这件事。将您的
dictVybe
更改为var dictVybe=[String:[Vybe]]()
什么是as![Vybe]
您在这里做什么?将其设置为struct数组?dictVybe的值是[Vibe]的类型,因为您是通过Dictionary(grouping:self.listVybe){$0.monthDay}创建的,所以您可以将值强制转换为[Vibe]的类型,该类型是可计数和可迭代的。参考
( dictVybe[ "Monday, Jul 16" ] as! [ Vybe ] ).count