У меня есть статический метод, который создает экземпляр класса и помещает его в статическую переменную. Мне интересно, каков правильный способ управления памятью в этой ситуации.
Вы не можете поместить его в dealloc-метод, потому что, хотя он может получить доступ к статической переменной, любой созданный экземпляр, который будет выпущен, также выпустит sharedInstance.
Я предполагаю, что может существовать возможность создания метода static destroy, который будет вручную освобождать память и может быть вызван пользователем из appWillTerminate, но это кажется немного странным.
Итак, опять же, вопрос: Каков правильный способ выпуска статической переменной?
// MyClass.m
#import "MyClass.h"
static MyClass *myClass; // How to properly do memory management
@implementation MyClass
+ (MyClass *)sharedMyClass {
if (myClass == nil) myClass = [[MyClass alloc] init];
return myClass;
}
@end