【发布时间】:2014-01-13 13:27:11
【问题描述】:
我创建了一个不同的 init 方法,并希望它成为指定的初始化程序,而不是标准的 -init。如何防止客户端代码使用-init 实例化类?
例如
/* everyone must call this */
- (id)initWithInfo:(NSDictionary *)info {
self = [super init];
if (self) {
_info = info;
}
return self;
}
/* Don't want anyone to be able to create this using init */
【问题讨论】:
-
旁注:您的方法丢失了
return self; -
它是“指定初始化器”,而不是“默认初始化器”。
-
要么将
init映射到另一个init...,要么使其抛出错误。没有办法“隐藏”它。 -
不理会
init并在您的文档中提及应该如何初始化对象如何?