我是一个名为comingTransactions的dobule数组。
var upcomingTransactions: [[Transaction]]
但是,当我试图从它到达我的手机时,我收到了这个错误"模糊地提及会员'下标'"在
for (j, _) in upcomingTransactions[i] {
我想要的只是从每个部分检索单元格。我用我的i var检索部分但是当我试图通过使用第二个变量来捕捉细胞时,我需要放一些东西,但我不知道是什么。这是我的代码:
var indexPaths: [IndexPath] = []
for i in 0..<upcomingTransactions.count {
for (j, _) in upcomingTransactions[i] {
indexPaths.append(IndexPath(row: j, section: i))
}
}
答案 0 :(得分:2)
您的for-each
次迭代会导致i
和j
(假设我们修复了编译错误)为Transaction
个实例,因为for-each
遍历了数组中的值。如果你想要指数而不是你有两个选择:
使用enumerated()
,它还会为您提供索引:
var indexPaths: [IndexPath] = []
for (i, arr) in upcomingTransactions.enumerated() {
for (j, _) in arr.enumerated() {
indexPaths.append(IndexPath(item: j, section: i))
}
}
map
指数:
let indexPaths = upcomingTransactions.enumerated().flatMap { (i, arr) in
(0..<arr.count).map { j in
IndexPath(item: j, section: i)
}
}
第二种方法更具功能性,而第一种方法则更为强制性。我个人推荐功能性的,因为它只使用不可变的实体。