Синтезированные свойства для примитивных типов данных с использованием ARC - слабые или назначить? - PullRequest
19 голосов
/ 13 октября 2011

Мне было интересно, как правильно написать синтезированные свойства для примитивных типов данных (например, bool), когда включен ARC.

Раньше я использовал это до ARC:

@property(assign) bool isOn;

Но я понимаю (возможно, неправильно), что вы не должны использовать assign, когда включена функция ARC. Я попытался заменить это на weak, но я получаю ошибку -

Свойство «слабого» атрибута должно иметь тип объекта.

Должен ли я продолжать использовать assign?

Ответы [ 3 ]

29 голосов
/ 13 октября 2011

Assign в порядке.ARC означает «Автоматический подсчет ссылок», а примитивные типы данных не имеют счетчиков ссылок.

Weak не удалось, поскольку нет ни объекта, ни ссылок для управления ARC.

4 голосов
/ 13 октября 2011

Кажется, вам нужно почитать определенную тему здесь. Проверить: http://clang.llvm.org/docs/AutomaticReferenceCounting.html

Проверьте главу 4;) Здесь вы прочтете, что назначение хорошо с ARC.

0 голосов
/ 19 июня 2014

Когда ARC включен, вы можете написать синтезированные свойства для примитивных данных, например (например, BOOL). @property (unsafe_unretained) bool isOn;

...