Używanie self-> ivar podczas bezpośredniego dostępu do zmiennych instancji
Zauważyłem, że większość programistów Objective-C nigdy nie używaself->ivar
składnia podczas bezpośredniego dostępu do zmiennych instancji. Większość przykładowego kodu, który widzę, po prostu odwołuje się do zmiennej instancji bezself->
. Myślę, że raczej mylące jest odwoływanie się do zmiennej instancji bez wyraźnego stwierdzenia, że jest to zmienna instancji, a nie tylko zmienna bieżącego zakresu.
Czuję, że chcę pisać takie rzeczy jak:
- (void)dealloc {
[self->someVar release];
[self->anotherVar release];
[super dealloc];
}
lub
- (void)setVar:(Foo *)newVar {
[self->var autorelease];
self->var = [newVar retain];
}
Nie ma zbyt wielu okazji, aby kiedykolwiek uzyskać dostęp do naszych zmiennych instancji bez użycia akcesorium do enkapsulacji, ale czasami potrzebujemy takich jak w dealloc, lub w niestandardowych getterach i setterach.
Czy jestem złą osobą / programistą? Czy jest jakiś dobry powód, by nie pisać kodu w ten sposób? Ponieważ naprawdę dobrze jest robić to w ten sposób.