繁体   English   中英

Objective-C类集群和私有类初始值设定项

[英]Objective-C class clusters and private class initializers

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

现在我正在创建自己的类集群(许多私有类都有单个公共类)。 问题:我是否仍需要将私有类的初始化程序定义为返回通用id指针:

- (id)initSubclassForFooClassCluster;

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

- (SubclassForFooClassCluster *)initSubclassForFooClassCluster;

您可以在init方法中使用(id),声明更具体的类型对您没有多大帮助。 如果你真的想让你的私有子类私有,你应该使用id,否则当你不需要这些信息时,你会将你班级内部的信息泄露给外界,这取决于你需要什么。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM