Этот ответ содержит многочисленные ошибки и также устарел. Пожалуйста, смотрите другие вопросы / ответы и комментарии.
<Ч />
неатомической
nonatomic
используется для многопоточности. Если мы установили атрибут nonatomic во время объявления, тогда любой другой поток, желающий получить доступ к этому объекту, может получить к нему доступ и дать результаты в отношении многопоточности.
Копия
copy
требуется, когда объект изменчив. Используйте это, если вам нужно, чтобы значение объекта было таким, как оно есть в данный момент, и вы не хотите, чтобы это значение отражало какие-либо изменения, сделанные другими владельцами объекта. Вам нужно будет освободить объект, когда вы закончите с ним, потому что вы сохраняете копию.
Присвоить
Assign
несколько противоположно copy
. При вызове метода получения свойства assign
возвращается ссылка на фактические данные. Обычно вы используете этот атрибут, когда у вас есть свойство примитивного типа (float, int, BOOL ...)
Сохраняйте
retain
требуется, когда атрибут является указателем на объект. Сеттер, сгенерированный @synthesize
, сохранит (или добавит счет сохранения) объект. Вам нужно будет отпустить объект, когда вы закончите с ним. Использование retain увеличивает количество сохраняемых данных и занимает память в пуле автоматического выпуска.
Strong
strong
является заменой для атрибута сохранения, как части Автоматического подсчета ссылок (ARC) Objective-C. В не-ARC-коде это просто синоним для сохранения.
Это хороший сайт, чтобы узнать о strong
и weak
для iOS 5.
http://www.raywenderlich.com/5677/beginning-arc-in-ios-5-part-1
Слабое
weak
аналогичен strong
за исключением того, что он не увеличивает счетчик ссылок на 1. Он не становится владельцем этого объекта, а просто хранит ссылку на него. Если счетчик ссылок объекта упадет до 0, даже если вы все еще указываете на него здесь, он будет освобожден из памяти.
Приведенная выше ссылка содержит полезную информацию о Слабом и сильном.