沒有人有任何的偏好或意見有關使用要麼...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