2012-02-23 13 views
7

Jeśli mam właściwość ciągów tylko do odczytu, czy konieczne jest podanie w deklaracji strong (lub retain) lub copy? Jeśli nie sprecyzuję, czy któryś z nich jest przyjęty?Czy własność readively Objective-C musi być silna lub skopiować?

Wydaje mi się, że atrybut własności jest przydatny tylko wtedy, gdy posiadasz setera.

@property (nonatomic, readonly) NSString *name; 
+0

„przypisać” jest zawsze zakłada się, jeśli nie określić –

+1

Zobacz http://stackoverflow.com/questions/9397322/does-property-copy-in-combination-with-readonly-make-sense podobnej dyskusji. – Monolo

+0

Dzięki Monolo, +1 za link. – Boon

Odpowiedz

9

To w większości poprawne. Dla właściwości readonly, strong, retain, weak i assign nie mają wpływu. Ale jeśli zadeklarujesz również właściwość gdzie indziej jako readwrite (najczęściej w anonimowej kategorii w .m), to inne modyfikatory muszą się zgadzać.

+0

Dobra odpowiedź! Ale jeśli właściwość readonly nie ma gettera i nie jest redeclared wewnętrznie jako readwrite wewnętrznie, silny powinien również zwrócić się do właściwości, ponieważ ma teraz ivar, czy to prawda? –

Powiązane problemy