我对 Swift 比较陌生,我想这个问题更多是关于初始化的一般问题。
我需要创建一个多维数组,我可以在其中访问 UIViewController 实例中主要是字符串的所有值。请参阅以下将占位符作为字符串的示例(这应该是真实的单词,但在它起作用之前我尽量保持简单):
let firstArray = ["1","2","3"]
let secondArray = ["4","5","6"]
let thirdArray = [firstArray,secondArray]
let fourthArray = ["1","2","3"]
let fifthArray = ["4","5","6"]
let sixthArray = [fourthArray, fifthArray]
let seventhArray = [thirdArray, sixthArray]
在 Playground 中,它运行良好并且可以按我的需要访问。 但是在我的 ViewController 实例中,编译器返回以下错误:
'myViewController.Type' does not have a member named firstArray
每次我尝试将数组放入数组时都是如此。 在我的 .swift 文件中,它看起来像这样:
import UIKit
class tricktionaryViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
let firstArray = ["1","2","3"]
let secondArray = ["4","5","6"]
let thirdArray = [firstArray,secondArray]
let fourthArray = ["1","2","3"]
let fifthArray = ["4","5","6"]
let sixthArray = [fourthArray, fifthArray]
let seventhArray = [thirdArray, sixthArray]
let textCellIdentifier = "TextCell"
//.... some functions following
}
我实际上尝试为第一级数组创建类,但仍然是同样的问题。我做错了什么?
最佳答案
由于第三个数组包含来自存储属性的元素,第三个数组本身不能是存储属性,因为它的值是根据存储的属性值计算的。因此,要完成这项工作,您必须将第三个数组(和所有其他计算数组)声明为不可变的计算变量,如下所示
let firstArray = ["1","2","3"]
let secondArray = ["4","5","6"]
var thirdArray:[[String]] {
return [firstArray,secondArray]
}
关于ios - ViewController 中快速的多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28899128/