gpt4 book ai didi

swift 在 super.init 之前调用 self

转载 作者:行者123 更新时间:2023-11-30 10:01:56 24 4
gpt4 key购买 nike

根据文档,在super.init()调用之前访问self是禁止的。为什么使用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)就可以了?

最佳答案

推理是逻辑上下文,让我们来看看。

self.myString = "11" 行中,声明 myString 是什么,即 == "11"

现在,您可以print(self.myString)

但是!您不能打印 self,因为 SELF 从未初始化/声明!您必须调用某种类型的初始化程序,即父初始化程序(super.init),然后声明/实例化某种类型的对象。

所以你不一定知道SELF是什么,但是你绝对可以确定self.myString是什么!

关于swift 在 super.init 之前调用 self,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38045445/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com