Взгляните на Apple Docs .
Обычно, если вы говорите nonatomic
и генерируете методы доступа, используя @synthesize
, тогда, если несколько потоков пытаются изменить / прочитать свойство одновременно, может произойти сбой. Вы можете получить частично записанные значения или чрезмерно освобожденные / сохраненные объекты, которые могут легко привести к сбоям. (Тем не менее, это потенциально намного быстрее, чем атомарный метод доступа.)
Если вы используете значение по умолчанию (которое atomic
; раньше для этого не было ключевого слова, но теперь теперь ), то методы @synthesize
d используют блокировку уровня объекта для убедитесь, что несколько операций чтения / записи в одном свойстве сериализуются. Как указывают документы Apple, это не означает, что весь объект является поточно-ориентированным , но отдельные свойства для чтения / записи имеют вид.
Конечно, если вы реализуете свои собственные средства доступа вместо использования @synthesize
, я думаю, что эти объявления ничего не делают, кроме как выражают ваше намерение относительно того, реализовано ли свойство в поточно-ориентированном виде.