Thread objective-c: @property (retain) (7 answers)
Opened by esskar at 2010-02-16 19:00

murphy
 2010-02-16 20:18
#133122 #133122
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
Warum nicht so:
Code: (dl )
1
2
3
4
5
6
7
- (void)dealloc
{
if(self.bar)
self.bar = nil;

[super dealloc];
}


Und der Konstruktor geht natürlich auch hübscher, denn man weiß ja, dass dort die Instanzvariablen noch nicht belegt sind, also kann man auch das hier schreiben:
Code: (dl )
1
2
3
4
5
6
7
- (id)init
{
if(self = [super init])
bar = [[Bar alloc] init];

return self;
}


Ich persönlich finde es sogar besser, im Konstruktor noch keine Eigenschaftssetzer aufzurufen. Mir ist nämlich nicht wohl dabei, mich darauf zu verlassen, dass die Eigenschaften vom Allokator auf nil initialisiert wurden, und wären sie das nicht, würde der Aufruf der Setzmethoden versuchen die zufälligen Pointer in den Instanzvariablen als Objekte zu behandeln, denen man - release Nachrichten schicken muss, nachdem man die neuen Werte eingetragen hat...
When C++ is your hammer, every problem looks like your thumb.

View full thread objective-c: @property (retain)