如果在+ sharedInstance方法之前調用單例類的init方法,會發生什麼情況..?這將導致一個新的對象,如果不是,那麼返回同一個實例的方式?靜態變量在sharedInstance中聲明的事實將對整體結果產生任何影響。如果在+ sharedInstance方法之前調用單例類的init方法,會發生什麼情況..?
+ (LibraryAPI*)sharedInstance
{
// 1
static LibraryAPI *_sharedInstance = nil;
// 2
static dispatch_once_t oncePredicate;
// 3
dispatch_once(&oncePredicate, ^{
_sharedInstance = [[LibraryAPI alloc] init];
});
return _sharedInstance;
}
看看這個SO [question](http://stackoverflow.com/questions/7274360/how-objective-c-singleton-should-implement-init-method) –
你的問題是對我不清楚。如果我調用[[LibraryAPI alloc] init] 5次,它將創建並返回5個對象。但是如果我調用[LibraryAPI sharedInstance],它將始終返回單例對象。 – swapnilagarwal