У меня есть этот класс, который показывает всплывающее окно.
Я делаю alloc-init на этом, и это подходит.
DarkVader* darkPopUp = [[DarkVader alloc] init:theButton helpMessage:[theButton.titleLabel.text intValue] isADay:NO offset:0];
Он показывает себя, и если пользователь нажимает Ok, он исчезает. Когда я выпущу это?
Я могу сделать [самоотпуск] в классе, когда нажата кнопка ОК. Это правильно?
Если я сделаю это, анализатор скажет, что у него есть счетчик удержаний +1 и он просочится в вызывающую функцию.
Если я выпускаю его сразу после alloc-init, анализатор говорит, что у него есть счетчик хранения +0, и я не должен его выпускать.
DLog(@"DarkVader retain count: %i", [darkPopUp retainCount]);
говорит, что у него счетчик удержаний 2. Я в замешательстве.
Короче говоря, мой вопрос: как освободить объект, который инициализируется, выполняет некоторую работу и завершается, но никто не может освободить его в вызывающей функции.