Что такое атрибут сильного свойства - PullRequest
79 голосов
/ 15 июля 2011

Я использую бета-версию Xcode для разработчиков и замечаю некоторые тонкие различия.Среди них новый атрибут для объявленных свойств.

@property(strong)IBOutlet NSArrayController *arrayControl;

Мой вопрос: что означает сильный атрибут ??Заменяет ли он какой-нибудь старый или это что-то совершенно новое?Я искал через Google и документацию для разработчиков и не смог ничего найти.Пока я не знаю, что это такое, я не решаюсь его использовать.

Заранее спасибо

Ответы [ 3 ]

95 голосов
/ 15 июля 2011

Это замена атрибута retain как части Objective-C Automated Reference Count (ARC) . В не-ARC-коде это просто синоним retain.

10 голосов
/ 05 сентября 2012

Сильная ссылка - это ссылка на объект, который препятствует его освобождению.Другими словами, это создает отношения с владельцем.В то время как ранее вы делали это:

**// Non-ARC Compliant Declaration
@property(retain) NSObject *obj;**

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

**// ARC Compliant Declaration
@property(strong) NSObject *obj;**
4 голосов
/ 22 марта 2012

Как мы знаем, мы не можем выпустить какой-либо объект в проекте на основе ARC в iOS 5. Поэтому, когда мы хотим сохранить какой-либо объект для дальнейшего использования на более позднем этапе и не хотим, чтобы ARC удалял объект из памяти, мы устанавливаем свойство для объекта как «Сильное».

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