Зачем давать свойство как только для чтения, так и назначать? - PullRequest
1 голос
/ 01 марта 2012

Если assign является установщиком, но свойство имеет значение readonly, тогда оно не будет выполнять никаких настроек, поэтому зачем использовать assign?

Я получаю это от Документы Apple на расширение класса.На этой странице я понимаю, почему вы хотите публичное свойство только для чтения, затем делаете его закрытым для чтения, но тогда почему бы не опустить assign из публичного @interface и просто включить его только в расширение класса?

Ответы [ 2 ]

2 голосов
/ 01 марта 2012

Если вы объявляете @property несколько раз (как правило, потому что вы объявляете публичное свойство readonly в заголовочном файле и свойство readwrite в анонимной категории в вашем .m), схемы управления памятью должны матч.

Так что, если у вас есть это в вашем .m:

@property (assign, readwrite) NSObject *foo;

Тогда вам нужно это в заголовке, и assign обязательно:

@property (assign, readonly) NSObject *foo;
0 голосов
/ 01 марта 2012

Если вы оставите только (nonatomic), компилятор автоматически установит второй параметр на assign.

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