iOS5 @ изменения свойств - PullRequest
6 голосов
/ 08 декабря 2011

В iOS 5 «retain» и «release» больше не поддерживаются.Вместо «сильный» и «слабый» - новый способ.

Код iOS 4:

@property(nonatomic, retain)
@property(nonatomic, assign)

Код iOS 5:

???
???

Ответы [ 3 ]

12 голосов
/ 08 декабря 2011

"В iOS 5 сохранение версии больше не поддерживается."Они есть, но только не при использовании ARC.

При использовании ARC -[<NSObject> retain] не используется.

Для свойств можно использовать strong, если используется ARC, но это не требуется(вы можете использовать retain тоже, если хотите).strong и retain идентичны:

@property(nonatomic, strong)
@property(nonatomic, assign)

Просто убедитесь, что вы последовательны (не используйте оба strong и retain в одном проекте).

5 голосов
/ 08 декабря 2011

Они не совсем одинаковы, но в основном retain := strong и assign := weak Я бы посоветовал взглянуть на заметки о выпуске ARC

4 голосов
/ 08 декабря 2011

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

strong используется с ARC, и это в основном помогает вам, не беспокоясь о количестве сохраняемых объектов. ARC автоматически выпускает его для вас, когда вы закончите. Использование ключевого слова strong означает, что вы являетесь владельцем объекта.

weak владение означает, что вы не владеете им, и он просто отслеживает объект до тех пор, пока объект, которому он был присвоен, не останется, как только второй объект, который он потерял, теряет свою ценность. Например, obj.a=objectB; используется и имеет слабое свойство, тогда его значение будет действительным только до тех пор, пока объект B не останется в памяти.

copy свойство очень хорошо объяснено здесь https://stackoverflow.com/a/5002646/919545

strong,weak,retain,copy,assign являются взаимоисключающими, поэтому вы не можете использовать их на одном объекте ... прочитайте раздел «Объявленные свойства» http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocProperties.html#//apple_ref/doc/uid/TP30001163-CH17-SW1

в надежде, что это немного вам поможет ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...