È errato creare @properties per le variabili private solo per i vantaggi della gestione della memoria?È "cattivo" utilizzare @properties per le variabili private solo per i vantaggi della gestione della memoria?
Sembra strano e sbagliato avere visibilità pubblica @ proprietà per molte variabili private.
(Principalmente, mi sto liberando ivars private durante le condizioni di memoria insufficiente con i rispettivi metodi di "evento".)
Esempio: solito faccio questo per rilasciare un Ivar privato:
[name release]; name = nil;
Ma con @properties, posso fare questo:
self.name = nil;
Più tardi nel mio codice, farà questo, da qui la necessità di impostare a zero:
if(!name)
name = [[NSString alloc] initWithFormat:@"Hi %@",inputName];
Questo è fantastico, ma sembra un trucco. Non sono sicuro che lo farò nel mio codice, ma almeno so che c'è un'alternativa a quello che sto facendo ora. Grazie!! – bentford
Non è un hack, è una forma esplicita di categoria chiamata estensione.. "È normale che una classe abbia un'API dichiarata pubblicamente e quindi abbia un'API aggiuntiva dichiarata privatamente per l'utilizzo esclusivo della classe o del framework all'interno del quale risiede la classe" –
Non è assolutamente un hack ed è al 100% in linea con perché le estensioni di classe sono state aggiunte alla lingua in primo luogo. Abbraccia questo schema con gusto. – bbum