So che le discussioni sugli stili di codifica tendono a finire in un disastro e in infinite guerre di fiamma, ma non è quello che voglio raggiungere. Durante l'ultimo decennio ho visto principalmente due diversi stili di codifica per i metodi dealloc
in Objective-C. Il primo e il più comune era posizionare dealloc
nella parte inferiore del file. Questo è anche lo stile utilizzato da Apple nei modelli predefiniti Xcode. La logica alla base di ciò sembra essere che dealloc
viene richiamato quando si avvicina la fine dell'oggetto, quindi la fine del file sembra essere una bella metafora.Qual è lo stile di codifica preferito per dealloc in Objective-C?
D'altra parte un paio di persone tendono a mettere dealloc
direttamente sotto le direttive @synthesize
. Questo ha due grandi svantaggi a mio parere:
- La parte superiore del file si riempie con noioso codice.
- È difficile trovare le parti essenziali della classe, è necessario scorrere verso il basso.
L'enorme vantaggio a mio parere è che si dispone di una connessione visiva diretta tra proprietà e il corrispondente messaggio release
.
L'altra cosa è le variabili già rilasciate Niling. Anche se non penso che ciò sia necessario, specialmente nel contesto degli oggetti in cui l'intera variabile viene scomposta dopo lo dealloc
, tendo anche a zero le variabili. Sono abituato a farlo per le variabili nell'ambito della funzione, quindi sono coerente con il mio stile di codifica.
Questo è come la maggior parte delle mie classi assomigliano:
@implementation Bar
@synthesize foo;
- (void)dealloc
{
[foo release], foo = nil;
[super dealloc];
}
// Initializers and other methods…
ho già detto un paio di vantaggi e svantaggi. Cosa ne pensi di questo argomento? Qual è lo stile di codifica utilizzato in dealloc
e perché? Ci sono altri pro e contro che ho dimenticato di menzionare?
Non voglio iniziare una guerra di fiamma qui. Voglio solo sapere quale stile usi e se hai delle ragioni specifiche per questo o se questo non ha importanza per te alla fine.
Evento che tu non voglia che le persone inizino discussioni e fiamme, accadrà a domande come questa. – Younes