我有以下代码,对此错误消息感到困惑:
实例成员“ 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)
]
当我编写以下内容时,可以构建它,但是我不知道为什么奇怪的片段不起作用:
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
在完全初始化类之前就在使用。您可以具有一个getter,每次访问变量时将调用该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)
]
}()
}
问题内容: 我有以下课程: 编译失败,并显示以下消息: 实例成员’categoriesPerPage’不能用于’ReportView’类型 这是什么意思? 问题答案: 您说的时候只是语法错误。该是没有必要的。 用 : 如果你只想 得到 就可以写 通过第一种方法,您还可以将观察者添加为 & 允许用作二传手
问题内容: 我试图访问从Person类继承的Indicator类的变量。但是,我认为我没有正确地进行初始化。 我得到以下信息:’错误:实例成员’name’不能用于’Indicator’`类型。 问题答案: 您不能直接以静态方法访问非静态内容。 该方法是静态的,因为已使用修饰符对其进行了修改: 的属性不是静态的,因为它没有被修改。 由于非静态成员属于该类的每个单独实例,而静态成员属于该类本身,因此静
我试图在调试日志下面发出一个REST post调用。我尝试了不同的方法-信任许多不同风格的所有证书,将证书上载到java cacerts(JVM在加载时将证书显示为受信任的),但我仍然会变成failure_shake错误。下面的代码是否为您提供了有关问题的任何提示?使用Java8。
问题内容: 我有一个名为“威士忌制造商”的课程,它只会启动新的威士忌。现在,我想在“ WhiskyOverViewController”中添加新添加的威士忌。但是我面临以下问题: 在“ stringArray”行中,出现错误“实例成员’whiskyArray’无法用于类型’WhiskyOverViewController’。为什么不能在那里使用whiskyArray变量? 在此先感谢您的帮助 问题
我正在尝试创建一个单例的访问方法。我得到这个错误(见下面的代码)。我不明白为什么会出现这个错误,以及这个错误的含义。有人能解释一下吗?
问题内容: 我现在多次遇到此错误,并采取了不同的解决方法,但我真的很好奇为什么会发生。基本方案如下: 因此,我知道在类完全初始化之前不能使用self,但是在这种情况下,我使用的是self属性来初始化一个懒惰的var,直到我的实例准备好后,它才会发生。 谁能解释我为什么会 出错? 问题答案: 尝试: 精确确定惰性var的类型并将其添加到您传递的参数中非常重要