因此,我的理解是,如果该方法没有实现初始化对象的新实例,则不建议在方法名称中使用 init。但是,单例类型类是什么情况?如果我做这样的事情:
+ (MyClass*) sharedInstance {
__block MyClass *sharedInstance = nil;
static dispatch_once_t once_token;
dispatch_once(&once_token, ^{
sharedInstance = [[MyClass alloc] init];
});
return sharedInstance;
}
然后有另一种方法:
- (void) initializeInstance {
// Do some stuff
// Never call the init method
}
如果我这样做,是否会有额外的保留周期或其他奇怪的 ARC 行为?