Подтвердить что ты не робот

Является ли сильным идентификатором значение по умолчанию с помощью оператора @property?

Я изучаю Objective-C и Cocoa Framework (через книгу Аарона Хиллгасса) и пытаясь понять, почему следующая строка содержит "сильный" идентификатор.

@property (strong) NSManagedObjectContext *managedObjectContext;

Как я понимаю, сильным является значение по умолчанию, поэтому почему мне нужно явно объявить его?

4b9b3361

Ответ 1

Вы можете объявить это, ничего не пишите, но что происходит, когда вы возвращаетесь к коду или какой-либо другой разработчик смотрит на ваш код?

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

Ответ 2

Соглашайтесь с Ричардом.

//Сильные и слабые ссылки  ARC вводит два новых классификатора ссылок на объекты: сильные и слабые.

В ARC все ссылочные переменные объекта по умолчанию сильны.  И это не относится к только свойствам;  идентификатор по умолчанию с оператором @property присваивается для не-объектов,  для типа объекта должен быть сильным.  все ссылки на объекты - значения свойств, переменные экземпляра, автоматические переменные,  переменные параметра и статические переменные - действуют как свойство сохранения в ARC.

Ответ 3

В Objective-C Язык программирования:

правопреемником

Указывает, что установщик использует простое назначение. Эта атрибут по умолчанию.

То есть атрибут по умолчанию для семантики setter присваивает, а не strong.