Що таке сильний атрибут властивості


80

Я використовую бета-версію Xcode для розробників і помічаю деякі тонкі відмінності. Серед них є новий атрибут для оголошених властивостей.

@property(strong)IBOutlet NSArrayController *arrayControl;

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

Спасибі заздалегідь


1
Дійсно, тут не слід говорити про бета-тестування NDA ...
Кендалл Гельмштеттер Гелнер

3
Ну, це не схоже на те, що я роздаю корпоративні секрети, але так, я, мабуть, повинен був би це розмістити на форумах розробників яблук
Шанс Хадсон

Я постійно бачу ці "бета-NDA" коментарі до об'єктивних матеріалів. Мені здається веселим, що Apple відчуває потребу захистити свої об'єктивні секрети c (всі вмирають від копіювання об'єкта c!), І навіть смішніше, що розробники відчувають потребу ходити навколо, щоб заважати людям про це.
Джехан

Відповіді:



10

Сильне посилання - це посилання на об'єкт, яке зупиняє його вивільнення. Іншими словами, це створює відносини з власником. Тоді як раніше ви робили це:

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

У рамках ARC ми ​​робимо наступне, щоб переконатись, що екземпляр класу отримує право власності на об’єкт, на який посилається (тобто, його неможливо звільнити, поки власник не буде).

**// ARC Compliant Declaration
@property(strong) NSObject *obj;**

4

Як ми знаємо, ми не можемо звільнити будь-який об'єкт у проекті на основі ARC в iOS 5. Отже, коли ми хочемо зберегти будь-який об'єкт для подальшого використання на більш пізньому етапі і не хочемо, щоб ARC видаляв об'єкт з пам'яті, тоді ми встановлюємо властивість для об'єкта як "Сильна".

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.