Ist es schlecht, @properties für private Variablen nur für die Vorteile der Speicherverwaltung zu erstellen?Ist es "schlecht", @properties für private Variablen nur für die Vorteile der Speicherverwaltung zu verwenden?
Es scheint chaotisch und falsch, @properties für viele private Variablen öffentlich zugänglich zu machen.
(Hauptsächlich ist ich die Freigabe private ivars bei niedrigeren Speicherbedingungen der jeweiligen "Ereignis" Methoden.)
Beispiel:
[name release]; name = nil;
: mir dies in der Regel noch eine private Ivar lösen
Aber mit @properties, kann ich dies tun:
self.name = nil;
Später in meinem Code, wird dies tun, damit die Notwendigkeit, auf Null zu setzen:
if(!name)
name = [[NSString alloc] initWithFormat:@"Hi %@",inputName];
Das ist großartig, aber es scheint wie ein Hack. Ich bin mir nicht sicher, ob ich das in meinem Code machen werde, aber zumindest weiß ich, dass es eine Alternative zu dem gibt, was ich gerade mache. Vielen Dank!! – bentford
Es ist kein Hack, es ist eine explizite Form der Kategorie namens Extension.. "Es ist üblich, dass eine Klasse eine öffentlich deklarierte API hat und dann eine zusätzliche API privat für die ausschließliche Verwendung durch die Klasse oder das Framework, in dem sich die Klasse befindet, deklariert" –
Es ist absolut kein Hack und ist 100% im Einklang mit warum Klassenerweiterungen der Sprache überhaupt hinzugefügt wurden. Umfassen Sie dieses Muster mit Begeisterung. – bbum