您可以通過各種方式創建單身人士。我想知道這些之間哪個更好。單身人士創作偏好
+(ServerConnection*)shared{
static dispatch_once_t pred=0;
__strong static id _sharedObject = nil;
dispatch_once(&pred, ^{
_sharedObject = [[self alloc] init]; // or some other init method
});
return _sharedObject;
}
我可以看到,這個編譯速度非常快。我認爲檢查謂詞將是另一個函數調用。 另一種是:
+(ServerConnection*)shared{
static ServerConnection* connection=nil;
if (connection==nil) {
connection=[[ServerConnection alloc] init];
}
return connection;
}
有沒有兩者之間有什麼主要區別?我知道這些可能相似,不用擔心。但只是想知道。
正是我所希望的。謝謝! – utahwithak
在手動保留版本中,不要打擾所有忽略廢話。它只會讓後來的重構遠離單身更難,這是一堆額外的完全不必要的代碼。 – bbum