Я начинаю понимать управление памятью лучше в объективе-c, но я чего-то не понимаю. Это свойство декларация:Управление памятью со свойствами
@property (nonatomic, retain)UILabel *myLabel;
и это его невидимый синтезируются сеттер (я думаю):
- (void)setMyLabel:(UILabel *)newValue {
if(myLabel != newValue) {
[myLabel release];
myLabel = [newValue retain];
}
}
Который спасает вас всю работу по сохранению и вещей каждый раза, но говорят, что я поставил мой свойство в первый раз, его еще не выделено, поэтому его счетчик ссылок равен 0, правильно? Так что я
UILabel *tempLabel = [[UILabel alloc] init];
self.myLabel = tempLabel;
[tempLabel release];
Я не совсем уверен, что там происходит, когда он не выпускает ничего, но говорят, что собственность уже имеет значение, и мы устанавливаем его. В сеттер, сначала он освобождается. Разве это не значит, что оно исчезает? Если его счетчик ссылок равен единице, а затем в отключенном сеттере, как он остается вокруг, чтобы быть установленным на оставшееся новое значение?
Спасибо!
Спасибо, что имеет смысл. – mk12