#objective-c #singleton
#objective-c #Одноэлементный
Вопрос:
Мой код:
static Class1 *onlyInstance;
(Class1*) getInstance {
@synchronized([Class1 class]) {
if(onlyInstance == nil)
onlyInstance = [[Class1 alloc]init];
return onlyInstance;
}
return nil;
}
Как управлять памятью с помощью одноэлементного шаблона в Objective-C?
Комментарии:
1. вы имеете в виду, как вы должны очистить одноэлементный класс?
2. Я хотел сказать, что когда и где я должен освободить объект onlyInstance, который я выделил.. Как управлять памятью с помощью созданного типа статической переменной.
Ответ №1:
Это одноэлементный шаблон, вам на самом деле не нужно выпускать его в любой момент времени, он должен быть рядом, когда вам это нужно.
Если вам нужно освободить его, вы можете сделать это из самого класса.
просто отпустите onlyInstance и установите для него значение nil, поэтому, как только метод, который создал его в первую очередь, будет вызван снова, он воссоздаст его.
Комментарии:
1. Но поскольку я возвращаю этот onlyInstance, как я могу освободить его там?
2. автоматический выпуск, но тогда вам понадобился бы не одноэлементный, а простой метод, такой как (MyClass *)MyClass { return [[[MyClass alloc] init] автоматический выпуск]; }