Различие: self.myProperty
- это метод доступа к переменной экземпляра myProperty
. Методы доступа генерируются @synthesize
или могут быть явно определены как
-(Type*) myProperty;
-(void) setMyProperty:(Type*)p;
Итак, предполагая, что вы определили метод доступа как (ключ сохраняется)
@property (retain) Type* myProperty;
1010 * тогда *
[myProperty release];
myProperty = nil;
эквивалентно
self.myProperty = nil;
В общем, хорошей практикой является установка освобожденных объектов равным нулю, чтобы вы случайно не попытались их использовать (или перепустить).
Нет веских причин для звонка [self.property release]
.