关于为什么出错的困惑“无法为'inout [[String]]'类型的值下标(aka'inout Array>')。在工作表 View 类中

(最初遵循Jared Davidson教程https://www.youtube.com/watch?v=pR6dR-vVZeY)

var secondArray = [SecondTable]()

let latest = ViewController().getArrayListLast()
var latestClass = latest.getFullClasses()

print(latestClass[0])

for i in 0...(latest.getAssetClasses().count)
{
    if SecondTable(secondTitle: latestClass[i]) != nil
    {
       secondArray = secondArray.append(SecondTable(secondTitle: latestClass[i]))
    }
}

最佳答案

append(_:) 是变异函数,它不返回任何内容。

现在,您的代码又犯了3个错误。

  • 如评论中提到的@vadian,使用 Storyboard 时ViewController()将永远无法工作。
  • 它将为您提供运行时崩溃索引的范围,因为您已经提供了直到数组计数为止的循环,但是应该一直到数组计数中的较小数,所以它应该像for i in 0..<(latest.getAssetClasses().count)
  • 您正在使用SecondTable的init创建两次对象,只是检查nil而不是可以使用if let
    if let secondTable = SecondTable(secondTitle: latestClass[i]) {
       secondArray.append(secondTable)
    }
    
  • 10-08 18:40