Должен ли я выпустить или освободить пул авто-релизов в iPhone OS? - PullRequest
2 голосов
/ 28 апреля 2009

Док говорит:

В среде сбора мусора, отправка стокового сообщения в пул запускает сборку мусора, если необходимо; релиз, однако, является не оп. В подсчете ссылок окружающая среда, сток имеет тот же эффект как выпуск Поэтому, как правило, вы следует использовать сток вместо выпуска.

Если я правильно понимаю, они говорят, что я всегда должен использовать -drain, не имеет значения, есть ли сборка мусора или подсчет ссылок. На айфоне нет GC, поэтому все равно отправляю -drain?

К сожалению, в документе говорилось только о Какао, а не о Какао Touch или iPhone. Поэтому я не уверен, применимо ли там то же самое.

Ответы [ 3 ]

7 голосов
/ 28 апреля 2009

Это не имеет значения, они оба имеют одинаковый эффект. Apple рекомендует использовать сток в случае, если вы когда-нибудь перейдете в среду сбора мусора (если будущая версия iPhone SDK будет поддерживать ее или если вы скопируете ее в проект Mac OS X), так что это то, с чем я бы пошел.

3 голосов
/ 28 апреля 2009

Просто отправьте -дрейн; если в какой-то момент на iPhone появится GC, вы сможете скомпилировать его без изменений. Это хорошая привычка.

0 голосов
/ 29 апреля 2009

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

Исключением может быть то, что вы находитесь в цикле создания множества объектов, которые автоматически высвобождаются, и у вас есть возможность освободить некоторые из них раньше.

Если вы называете сток заменой релиза, он не освободит объекты, которые не были автоматически освобождены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...