gpt4 book ai didi

Objective-C 类簇和私有(private)类初始化器

转载 作者:搜寻专家 更新时间:2023-10-30 20:26:41 24 4
gpt4 key购买 nike

通常,作为一个优秀的 Cocoa 公民,我编写我的初始化器返回类型 id(即指向通用对象的指针)以便以后更容易地进行子类化(尽管 99% 的时间我不需要那个)。

现在我正在创建自己的类(class)集群(许多私有(private)类(class)以单个公共(public)类(class)为上限)。问题:我是否仍需要将私有(private)类的初始值设定项定义为返回通用 id 指针:

- (id)initSubclassForFooClassCluster;

或指向私有(private)类本身的指针,如:

- (SubclassForFooClassCluster *)initSubclassForFooClassCluster;

最佳答案

您可以只在初始化方法中使用 (id),声明更具体的类型对您没有多大帮助。如果你真的想让你的私有(private)子类成为私有(private)的,你应该使用 id,否则你是在向外界泄露你的类的内部信息,而这些信息实际上不是必需的,这取决于你的需要。

NSString 是一个类簇,它的所有 init 方法都返回 id,因为同一个方法可能会返回不同的对象类型,具体取决于您传递给 init 方法的内容。

关于Objective-C 类簇和私有(private)类初始化器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7266805/

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