Вы можете создавать синглтоны различными способами. Мне интересно, что между ними лучше.Singleton Creation preference
+(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