Вот информация о свойствах переменной, которую я знаю
- атомарный // по умолчанию
- неатомный
- strong = сохранить // по умолчанию
- слабый
- сохранить
- назначить // по умолчанию
- unsafe_unretained
- копия
- только для чтения
- readwrite // default
, поэтому ниже приведена подробная ссылка на статью, где вы можете найти все вышеупомянутые атрибуты, которые вам непременно помогут.Большое спасибо всем людям, которые дают лучшие ответы здесь !!
Переменные атрибуты свойств или модификаторы в iOS
01. strong (iOS4 = сохранить) - там написано: «Держите это в куче, пока я больше на него не укажу» - другими словами «Я владелец, вы не можете освободить это до целихорошо с тем же, что и сохранить "- вы используете сильный только если вам нужно сохранить объект.- По умолчанию все переменные экземпляра и локальные переменные являются сильными указателями.- Обычно мы используем strong для UIViewControllers (родителей элемента пользовательского интерфейса) - strong используется с ARC, и он в основном помогает вам, не беспокоясь о количестве сохраняемых объектов.ARC автоматически освобождает его для вас, когда вы закончите. Использование ключевого слова strong означает, что вы владеете объектом.
Пример:
@property (strong, nonatomic) ViewController *viewController;
@synthesize viewController;
02. слабый (iOS4 =unsafe_unretained) - там написано: «сохраняйте это, пока кто-то на него сильно указывает» - то же самое, что «назначить, не сохранять или освобождать» - «слабая» ссылка - это ссылка, которую вы не сохраняете.- Обычно мы используем слабые для IBOutlets (дочерние объекты UIViewController). Это работает, потому что дочерний объект должен существовать только столько, сколько существует родительский объект.- слабая ссылка - это ссылка, которая не защищает указанный объект от сбора сборщиком мусора.- Слабым является, по сути, присваиваемое, оставшееся имущество.За исключением случаев, когда объект освобожден, для слабого указателя автоматически устанавливается ноль
Пример:
@property (weak, nonatomic) IBOutlet UIButton *myButton;
@synthesize myButton;
Объясните : Благодаря Б.Дж. Гомеру
Представьте, что наш объект - собака, и что собака хочет убежать (быть освобожденной).Сильные указатели похожи на поводок на собаку.Пока у вас есть поводок, привязанный к собаке, собака не убежит.Если пять человек прикрепят поводок к одной собаке (пять сильных указателей на один объект), то собака не убежит, пока все пять поводков не отсоединятся.Слабые указатели, с другой стороны, похожи на маленьких детей, указывающих на собаку и говорящих "Смотри! Собака!"Пока собака все еще на поводке, маленькие дети все еще могут видеть собаку, и они все еще будут указывать на нее.Однако, как только поводки отстегнуты, собака убегает независимо от того, сколько на нее указывают маленькие дети.Как только последний сильный указатель (поводок) больше не указывает на объект, объект будет освобожден, а все слабые указатели будут обнулены.Когда мы используем слабые?Единственный раз, когда вы захотите использовать слабый, - это если вы хотите избежать циклов сохранения (например, родитель сохраняет ребенка, а ребенок сохраняет родителя, поэтому ни один из них не освобождается).