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

Каковы атрибуты по умолчанию для свойств Objective-C?

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

Например, если я написал это:

@property float value;

Какими будут значения по умолчанию, например, только чтение, сохранение и т.д.?

4b9b3361

Ответ 1

По умолчанию/неявные значения: atomic, readwrite и assign.

атомный

Это означает, что значение считывается/записывается атомарно. Вопреки несколько популярному заблуждению, атомичность не соответствует безопасности потоков. Проще говоря, он гарантирует, что прочитанное или написанное вами значение будет прочитано или записано целиком (при использовании аксессуаров). Даже когда вы все время пользуетесь аксессуарами, это не строго безопасно.

чтение и запись

Свойству присваивается сеттер и получатель.

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

Это значение обычно используется для POD (Plain-Old-Data) и встроенных типов (например, int).

Для типов NSObject вы предпочитаете иметь сильную ссылку. В большинстве случаев вы объявите свойство copy, strong или retain. assign не выполняет операции подсчета ссылок. См. Также: http://clang.llvm.org/docs/AutomaticReferenceCounting.html#property-declarations

сильный

В некоторых случаях свойство может быть неявно strong в ARC:

Свойство типа сохраняемого типа объекта, которое синтезируется без источника владения, имеет право собственности на его связанную переменную экземпляра, если она уже существует; в противном случае [начиная с Apple 3.1, LLVM 3.1] его владение неявно сильная. До этого пересмотра было плохо сформировано синтезировать такое свойство.

Ответ 2

он равен

@property (atomic, readwrite, assign) float value;