是否可以创建一个没有 init 方法的类,以强制所有调用者使用工厂方法创建对象?
所以基本上,您要确保您的类永远不会使用 -init 进行初始化,对吧?你不能这样做exactly你想做的事,但你可以接近。
由于您继承自 NSObject,因此您有一个 init 方法,并且您无法阻止它被调用。也就是说,您可以将 init 重写为:
- (id)init
{
[self dealloc];
@throw [NSException exceptionWithName:@"MyExceptionName" reason:@"Reason" userInfo:nil];
return nil;
}
这样,只要有人调用你的 -init 方法,它就会杀死该对象,所以实际上,你的 init 方法几乎是不可调用的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)