我的枚举如下:
for (i, poi) in enumerate(self.pois) {
//
}
我想把i和poi演为(int,NSDictionary)
我尝试了很多东西,包括:
for (i, poi) in enumerate(self.pois) as [(int, NSDictionary)]
有什么想法吗?
答案 0 :(得分:0)
这个小包装可能对您有所帮助:
let justAnArray: Array<(i: Int, poi: NSDictionary)> = Array()
// fill the array...
for temporaryTuple: (i: Int, poi: NSDictionary) in justAnArray {
// enumerate through elements...
println(temporaryTuple.i)
println(temporaryTuple.poi)
}
typealias
:
typealias CustomTuple = (i: Int, poi: NSDictionary)
var justAnArray: Array<CustomTuple> = Array()
// fill the array ...
for temporaryTuple: CustomTuple in justAnArray {
// enumerate through elements...
println(temporaryTuple.i)
println(temporaryTuple.poi)
}
答案 1 :(得分:0)
poi
的当前类型是什么?如果poi
是Dictionary
,那么演员阵容很简单。
for (i, poi) in enumerate(self.pois.map { $0 as NSDictionary }) {
println("\(i) : \(poi)")
}
或者你可以把演员表作为for循环的第一行。
for (i, poiDictionary) in enumerate(self.pois) {
let poi = poiDictionary as NSDictionary
println("\(i) : \(poi)")
}
如果poi
是一个对象,那么您需要在poi
上调用一个方法来获取NSDictionary
。
for (i, poi) in enumerate(self.pois.map { $0.toNSDictionary() }) {
println("\(i) : \(poi)")
}