Должен ли я использовать ARC в objective-c?

Глядя на примечания к выпуску OS 10.7, некоторые вещи об использовании автоматического подсчета ссылок (ARC) упрощают управление памятью. Я скоро приступлю к новому проекту Cocoa и задаюсь вопросом, стоит ли использовать модель (как я ее понимаю, вы не можете смешивать между использованием ARC и не использовать ее)?

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

Ответ 1

Без сомнения, вы должны использовать ARC. ARC внедряет вызовы сохранения релиза в наиболее подходящие моменты времени, поэтому вы можете увидеть более низкое среднее использование памяти, чем если бы вы не использовали ARC.

Я использовал ARC, и он очень мощный. Вы перестаете иметь случайные сбои, и ваше приложение просто чувствует себя более отзывчивым. Как они сказали в WWDC, нет оснований не использовать автоматический подсчет ссылок.

Кроме того, вы можете использовать файлы без ARC в том же проекте, что и файлы ARC.

Ответ 2

Я согласен с FreeAsInBeer об использовании ARC. Однако следует также указать, что сбор мусора (GC) не должен использоваться. Похоже, что Apple впредь будет концентрировать свои усилия на ARC, давая GC умирать медленной смертью. Это замечательно, потому что ARC явно намного превосходит технологию, тогда как GC медленная и экстремально глючная.

Так что да. Используйте ARC. Держитесь подальше от GC.