Я хотел бы создать Singleton с ARC,
this is the answer I see.Создать Singleton с ARC без использования блока
Есть ли способ конвертировать этот код в нечто подобное без использования блока?
+ (MyClass *)sharedInstance
{
static MyClass *sharedInstance = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedInstance = [[MyClass alloc] init];
// Do any other initialisation stuff here
});
return sharedInstance;
}
EDIT:
Я вижу этот подход:
static MyClass *sharedMyClassInstance = nil;
+(MyClass *) sharedMyClass
{
@synchronized(self) {
if (sharedMyClassInstance == nil) {
sharedMyClassInstance = [[self alloc] init];
}
return sharedMyClassInstance;
}
}
будет это предотвратить объект, созданный более чем один?
Я хотел бы поддержать iOS 3.x, поэтому я бы хотел написать неблокированный код. –
iOS 3 не поддерживает ARC. – Caleb
похоже мне. http://stackoverflow.com/questions/9646607/arc-works-for-ios-3-x-what –