Ось інформація, яку я знаю про властивості змінних
- атомний // за замовчуванням
- неатомний
- strong = retain // за замовчуванням
- слабкий
- зберегти
- assign // за замовчуванням
- небезпечно_не збережено
- копія
- лише для читання
- readwrite // за замовчуванням
отже, нижче знаходиться детальне посилання на статтю, де ви можете знайти вищезазначені всі атрибути, які зухвало вам допоможуть. Велике спасибі всім людям, які тут дають найкращі відповіді !!
Атрибути властивостей змінних або модифікатори в iOS
01. сильний (iOS4 = утримувати)
- там написано "зберігайте це в купі, поки я більше на це не вказую" - іншими словами "Я є власником, ви не можете розмовляти з цим, перш ніж прицілитися з тим самим, що і утримувати "- Ви використовуєте сильний, лише якщо вам потрібно зберегти об'єкт. - За замовчуванням усі змінні екземпляра та локальні змінні є сильними вказівниками. - Як правило, ми використовуємо сильний для UIViewControllers (батьки елемента інтерфейсу) - сильний використовується з ARC, і це в основному допомагає вам, не турбуючись про кількість збережених об’єктів. ARC автоматично видає його для вас, коли ви закінчите з цим. Використання ключового слова strong означає, що ви є власником об’єкта.
Приклад:
@property (strong, nonatomic) ViewController *viewController;
@synthesize viewController;
02. слабкий (iOS4 = unsafe_unretain)
- там написано "тримати це до тих пір, поки хтось інший на нього вказує сильно" - те саме, що призначити, не зберігати чи відпускати - "слабке" посилання - це посилання, яке ви не зберігаєте. - Ми, як правило, використовуємо слабкі для IBOutlets (потомки UIViewController). Це працює, оскільки дочірній об’єкт повинен існувати лише до тих пір, поки існує батьківський об’єкт. - слабке посилання - це посилання, яке не захищає об'єкт, на який посилається, від збору збирачем сміття. - Слабкий - це, по суті, присвоєне, незатримане властивість. За винятком випадків, коли об'єкт вивільняється, слабкий покажчик автоматично встановлюється на нуль
Приклад:
@property (weak, nonatomic) IBOutlet UIButton *myButton;
@synthesize myButton;
Поясніть : Завдяки Б. Дж. Гомеру
Уявіть, що наш об’єкт - це собака, і що собака хоче втекти (бути вивільненою). Сильні покажчики - як повідець на собаку. Поки у вас прив’язаний повідець до собаки, собака не втече. Якщо п’ятеро людей прив’язують повідець до однієї собаки (п’ять сильних покажчиків до одного предмета), то собака не втече, поки не від’єднаються всі п’ять повідків. Слабкі покажчики, навпаки, схожі на маленьких дітей, які вказують на собаку і кажуть: "Дивись! Собака!" Поки собака все ще на повідку, маленькі діти все ще можуть бачити собаку, і вони все одно вказуватимуть на неї. Як тільки всі повідці від'єднуються, собака втікає незалежно від того, скільки маленьких дітей на неї вказує. Як тільки останній сильний покажчик (повідець) більше не вказує на об'єкт, об'єкт буде звільнений, а всі слабкі покажчики обнулені. Коли ми використовуємо слабке? Єдиний раз, коли ви хочете використовувати слабкий, це якщо ви хочете уникнути циклів збереження (наприклад, батько утримує дитину, а дитина зберігає батьків, тому жоден з них ніколи не звільняється).