Выпуск локальных переменных перед возвратом?

В цели-c я понимаю, что необходимо выпустить что-либо Вы init/retain/copy. Сделайте я должен сделать это прежде a return оператор? Я желаю понять вызов release явно и не использование autorelease.

-(void) someMethod
{
  AnotherClass* ac = [[AnotherClass alloc] init];
  if([ac somethingHappens]){
    // Do I need to release ac here?
    return;
  }
  [ac doSomethingElse];
  [ac release];
}

Спасибо!

5
задан Sam Washburn 17 February 2010 в 21:40
поделиться

1 ответ

Комментарии XML с тремя косыми чертами можно использовать для создания подсказок IDE в Visual Studio. В частности, очень хорошо работают «резюме» и «исключение». (Другие вещи, такие как «код», не работали в версиях Visual Studio, которые я использовал.)

Если это не работает для вас, то может быть что-то не так с вашими настройками.

-121--3977883-

Необходимо использовать свой первый синтаксис, и если вы используете класс вне решения Visual Studio, необходимо проверить Создание файла XML-документации в свойствах проекта.

-121--3977885-

Да, необходимо освободить переменные, но выйти из метода.

Это довольно прямо вперед: когда вы инициализируете что-то, количество удержаний увеличивается. Когда вы освобождаете, он уменьшается. Когда он достигает нуля, он автоматически освобождается (освобождается).

В приведенном выше коде вы вводите переменную, но если она следует по обратному маршруту, то количество сохраняемых переменных никогда не достигает нуля и, следовательно, никогда не освобождается.

3
ответ дан 14 December 2019 в 19:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: