2012-03-13 2 views
1

Можно создать дубликат:
iOS: to ARC or not to ARC? Pros and ConsПодробнее автоматического подсчета ссылок (ARC)

я узнал о Каковы преимущества и недостатки использования ARC?

от What are the advantages and disadvantages of using ARC?

Однако я до сих пор сомневаются в автоматическом подсчете ссылок (ARC).

У меня есть несколько запросов здесь.

Мы не хотим делать выпуск вручную, если ARC активен?

Это автоматическая сборка мусора и управление памятью автоматически?

Может ли кто-нибудь прояснить мои мысли.

+0

Статья, которую вы описали, в значительной степени суммирует ее.То есть, если вы не хотите вручную управлять подсчетами ссылок, тогда включите ARC, и вам не нужно. – Jeremy

+0

@Caleb: я не нашел упомянутую ссылку ранее. извините за дублирование. –

+0

@Ramshad Нет проблем - вот почему я указал на это. Этот вопрос, вероятно, будет закрыт как дубликат. Это не значит, что это не очень хороший вопрос, только что его уже спросили и ответили. Закрытие дубликатов помогает хорошим ответам накапливать все в одном месте и облегчает их поиск. – Caleb

ответ

2

ARC не является сборщиком мусора. Apple, описывает его как:

Автоматический подсчет ссылок (ARC) является особенностью компилятора уровня, упрощает процесс управления объектные жизненный цикл (память управления) в Cocoa приложениях.

Так что ARC просто добавляет вызовы сохранения/освобождения при компиляции. Это помогает разработчику сэкономить время и пропустить запись deallocs и других вызовов управления памятью.

Даже если ARC помогает много, это не означает, что разработчик должен игнорировать управление памятью. Иногда это редко, но это случается, ARC не в состоянии понять, что делать и может генерировать неожиданные поведения. Это определенно отличный инструмент, но лучше всего понять всю процедуру управления памятью в Objective-C, прежде чем активировать ее и позволить ей делать свою магию.

+1

Должен согласиться. Понимание управления памятью расширяет возможности, и вы получаете больше контроля. – Jeremy

+0

@junior B: спасибо за проницательную информацию –

+0

Ваш прием, я забыл упомянуть о том, что ARC не обрабатывает объекты Core Foundations (например, Core Graphics, Contacts from Address Book и т. Д.). Этот вопрос и подробный ответ должны помочь: [Работает ли ARC с объектами Core Graphics?] (Http://stackoverflow.com/questions/7800174/does-arc-work-with-core-graphics-objects) – bontoJR

1

Чтобы ответить на конкретные вопросы

Мы не хотим, чтобы сделать выпуск вручную, если ARC активен?

Нет, на самом деле было бы ошибкой компилятора использовать сохранение, выпуск или автоопределение при использовании ARC.

Это автоматическая сборка мусора и управление памятью автоматически?

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

+0

спасибо за Информация –

Смежные вопросы