Новые свойства ARC properties - PullRequest
6 голосов
/ 22 октября 2011

Я прочитал переход к примечаниям ARC, и у меня все еще есть некоторая путаница относительно атрибутов свойств, которые мы должны / можем использовать ... Мы можем использовать слабые вместо назначения (с преимуществом, что свойство установленоноль, если объект, на который он указывает, освобожден), сильный вместо сохранения и что вместо копии?Мы по-прежнему используем только копию или нам нужно объединиться с копией, например, property (strong,copy) .. Может быть, мне нужно попрактиковаться и снова прочитать документ, потому что ARC мне не очень понятен ...

Ответы [ 2 ]

11 голосов
/ 22 октября 2011

Документация Clang ARC содержит следующее:

Копирование подразумевает ___ сильное владение, а также обычное поведение семантики копирования в установщике.

Что касается пользовательских методов установки, он имеет следующее:

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

Так что, если вы реализуете пользовательские установщики, вы несете ответственность за реализацию сильной или слабой семантики в этих установщиках.

2 голосов
/ 22 октября 2011

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

См. Эту документацию:

http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocProperties.html#//apple_ref/doc/uid/TP30001163-CH17-SW18

...