没有人有任何的偏好或意见有关使用要么...Singleton:在哪里创建实例?
static id sharedReactor = nil;
+(id)sharedInstance {
if(sharedReactor == nil) sharedReactor = [[super allocWithZone:NULL] init];
return sharedReactor;
}
OR:
static id sharedReactor = nil;
+(void)initialize {
if(sharedRandomReactor == nil) {
sharedRandomReactor = [[super allocWithZone:NULL] init];
}
+(id) sharedInstance {
return sharedReactor;
}
要使用+(无效),我的脑海里似乎初始化了很多更优雅,我只是好奇有什么比我有更多经验的人会想到这两种方法?
加里
在这个假设中,什么叫'initialize'? – 2010-03-09 18:29:37
显然...“运行时发送初始化给程序中的每个类,恰好在类或从它继承的任何类之前,从程序中发送它的第一条消息(因此可能永远不会调用该方法)运行时以线程安全的方式将初始化消息发送给类。超类在它们的子类之前接收到这个消息。“ – fuzzygoat 2010-03-09 18:50:32
但是:我刚刚从bbum中发现了一个博客条目,重新说明了如果一个子类没有实现它,但是superClass可以执行多次初始化的可能性。鉴于这个新证据,我将采用第一种方法。 – fuzzygoat 2010-03-09 18:54:10