ios - ViewController 中快速的多维数组

标签 ios iphone swift

我对 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/

相关文章:

ios - 像 Chanel 应用程序一样自定义 Collection View 布局

iphone - 使用 Applescript 递归地将资源添加到 Xcode 项目

ios - 阵列达到限制后禁用选择

swift - 将选定的indexpath.row分配给另一个类中的变量

ios - 在范围内找不到类型 'GADRequestError'

ios - 企业 ios 应用程序中的崩溃日志

html - 我如何控制(跨所有设备和浏览器)字符是显示为表情符号版本还是文本版本?

ios - 如何添加当前时间(HH :MM:SS) to NSDate?

ios - 指定 NSURLConnection 和 UIWebView 的网络类型

ios - 如何在 ios 中保存和检索 JSON 响应