У меня проблема с управлением памятью в Objective-C. Скажем, у меня есть метод, который выделяет объект и сохраняет ссылку на этот объект в качестве члена класса. Если я выполняю ту же функцию во второй раз, мне нужно выпустить этот первый объект, прежде чем создавать новый, чтобы заменить его. Предположим, что первая строка функции:
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
Это означает, что будет создан другой пул авто-релизов. Код для выделения объекта выглядит следующим образом:
if (m_object != nil)
[m_object release];
m_object = [[MyClass alloc] init];
[m_object retain];
Проблема в том, что программа вылетает при запуске последней строки метода:
[pool release];
Что я делаю не так? Как я могу это исправить?
С уважением
Alan