2012-02-23 17 views
7

Se si dispone di una proprietà stringa di sola lettura, è necessario specificare strong (o retain) o copy nella dichiarazione? Se non lo specifichi, è uno di loro presunto?Una proprietà readionly Objective-C deve specificare strong o copy?

Mi sembra che l'attributo proprietà sia utile solo quando si dispone di un setter.

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

"assegna" è sempre assunto se non si specifica –

+1

Vedere http://stackoverflow.com/questions/9397322/does-property-copy-in-combination-with-readonly-make-sense per una discussione simile. – Monolo

+0

Grazie Monolo, +1 sul link. – Boon

risposta

9

Questo è per lo più corretto. Per una proprietà readonly, strong, retain, weak e assign non hanno alcun effetto. Ma se dichiari anche la proprietà altrove come readwrite (più frequentemente in una categoria anonima nello .m), allora gli altri modificatori devono corrispondere.

+0

Buona risposta! Ma se la proprietà readonly non ha un getter e non è redeclared come readwrite internamente, strong dovrebbe applicarsi anche alla proprietà perché ora ha un ivar, è corretto? –

Problemi correlati