gpt4 book ai didi

objective-c - 在 Objective C 中,为什么在类中使用 `self == [className self]` +initialize?

转载 作者:行者123 更新时间:2023-12-02 21:15:57 25 4
gpt4 key购买 nike

我在一个例子中看到过这一点——在类初始化中,这一行有什么用途吗?

+(void)initialize
{
if (self == [ToolController self])
{
...
}
}

我读到,在类方法中, self 指的是类而不是对象。那么从理论上讲,这个检查不会总是结果为真吗?

在我看来,该行将解析为: ToolController == ToolController

所以这就是为什么我认为它总是会导致 true。我错过了什么吗?

最佳答案

我认为您忽略了 self 是 ToolController 的子类的可能性。

大概在您正在阅读的示例中,+[ToolController初始化]中发生的任何事情都应该仅在父类(super class)(ToolController)初始化时发生,而不是发生< em>另外当 ToolController 的任何子类初始化时。

关于objective-c - 在 Objective C 中,为什么在类中使用 `self == [className self]` +initialize?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30606834/

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