@Bullstreak

Чем отличаются weak и strong?

Смотрел курсы из стэнфорда, понял, что это атрибуты указателей. Но разницы не понимаю.
  • Вопрос задан
  • 8085 просмотров
Пригласить эксперта
Ответы на вопрос 2
morozovdenis
@morozovdenis
strong - сильная ссылка и при присваивании в проперти с strong-ом колво ссылок на объект увеличивается

weak - слабая ссылка и при присваивании в проперти с weak-ом колво ссылок на объект НЕ увеличивается, а когда объект удаляетс, то этому проперти присваивается nil

пример:
@property (strong, nonatomic) NSObject *a;
@property (weak, nonatomic) NSObject *b;

NSObject *_a = [NSObject new]; // retainCount == 1
self.a = _a; //retainCount == 2
_a = nil; // объект ещё не удалён , retainCount == 1
self.a = nil; // объект будет удален

NSObject *_b = [NSObject new]; // retainCount == 1
self.b = _b; // retainCount == 1
_b = nil; //  объект будет удален, а в self.b будет nil
Ответ написан
@mr_cloud
iOS Developer
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы