快速错误 - 对成员'下标'的模糊引用

时间:2018-02-20 16:04:23

标签: arrays swift

我是一个名为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))
    }
}

1 个答案:

答案 0 :(得分:2)

您的for-each次迭代会导致ij(假设我们修复了编译错误)为Transaction个实例,因为for-each遍历了数组中的值。如果你想要指数而不是你有两个选择:

  1. 使用enumerated(),它还会为您提供索引:

    var indexPaths: [IndexPath] = []
    for (i, arr) in upcomingTransactions.enumerated() {
        for (j, _) in arr.enumerated() {
            indexPaths.append(IndexPath(item: j, section: i))
        }
    }
    
  2. map指数:

    let indexPaths = upcomingTransactions.enumerated().flatMap { (i, arr) in
       (0..<arr.count).map { j in 
           IndexPath(item: j, section: i) 
        }
    }
    
  3. 第二种方法更具功能性,而第一种方法则更为强制性。我个人推荐功能性的,因为它只使用不可变的实体。