我有以下代码,对此错误消息感到困惑:

实例成员"mydate"不能用于类型"TableViewController"

代码:

class TableViewController: UITableViewController {    
    let mydate = NSDate()
    let items = [
        (1, 9, 7, "A", mydate),
        (2, 9, 7, "B", mydate),
        (3, 9, 7, "C", mydate),
        (4, 9, 7, "D", mydate)
    ]

当我编写以下内容时,我可以构建它,但我不知道为什么oder代码段不起作用:

class TableViewController: UITableViewController {    
    let mydate = NSDate()
    let items = [
        (1, 9, 7, "A", nil),
        (2, 9, 7, "B", mydate),
        (3, 9, 7, "C", mydate),
        (4, 9, 7, "D", mydate)
    ]

推荐答案

在你完全使用self之前,这个问题就是self.您可以有一个getter,每次访问变量时都会调用它,也可以懒洋洋地计算它.

以下是一些代码:

class TableViewController: UITableViewController {
    let mydate = NSDate()
    var items : [(Int,Int,Int,String,NSDate)] {
        get {
            return [
                (1, 9, 7, "A", mydate),
                (2, 9, 7, "B", mydate),
                (3, 9, 7, "C", mydate),
                (4, 9, 7, "D", mydate)
            ]

        }
    }
}

惰性计算:

class TableViewController: UITableViewController {
    let mydate = NSDate()
    lazy var items : [(Int,Int,Int,String,NSDate)] =  {

            return [
                (1, 9, 7, "A", self.mydate),
                (2, 9, 7, "B", self.mydate),
                (3, 9, 7, "C", self.mydate),
                (4, 9, 7, "D", self.mydate)
            ]


    }()
}

Swift相关问答推荐

Swift Tree实现中的弱var

如何禁用MacOS上SwiftUI中按钮周围的聚焦环(或高亮显示)?

如何在SWIFT任务中判断当前任务是否已取消(异步/等待)

在SWIFTUI&39;S视图修改器中使用等待关键字

当计数大于索引时,索引超出范围崩溃

如何偏移HStack中的视图,但仍然约束框架以与偏移匹配?

Swift中从头开始的基本HTTP客户端

使用 @resultBuilder 的通用 buildList 函数

如何使用Duration.TimeFormatStyle以h m s格式快速格式化时间

如何使用模型在 SwiftUI 的列表中进行搜索

将弱引用作为类函数引用传递时,弱引用无法按预期工作

TabView 无法在屏幕上正确显示

SwiftUI View .tint(_ Color) 方法不起作用

自定义 DispatchQueue 服务质量

对齐时如何避免图像尺寸缩小

Swift 3.0 的 stringByReplacingOccurencesOfString()

调整文本的字体大小以适应 UIButton

在 Swift for iOS 中沿圆形路径绘制文本

快速覆盖属性

Swift performSegueWithIdentifier 不起作用