根据document.Why使用self.properties
是否正确,在禁止super.init()
调用之前访问self.properties
。
var myString: String
init(frame: CGFloat) {
//error:'self' userd before super.init call
print(self)
self.myString = "11"
print(self.myString)
super.init()
}
为什么会出现调用print(self)
,调用print(self.myString)
is ok的错误?
发布于 2016-06-27 04:02:36
推理是逻辑上下文,让我们来演练一下。
在self.myString = "11"
行中,您声明了什么是myString,即== "11"
。
现在,您可以使用print(self.myString)
。
但!您可以canNOT打印self,因为SELF从未初始化/声明过!您必须调用某种类型的初始化器,即父初始化器(super.init)
,然后声明/实例化某种类型的对象。
所以你可能不一定知道SELF是什么,但你可以确定self.myString
是什么!
https://stackoverflow.com/questions/38045445
复制