Я читал, что если у меня есть что-то вроде этого:
@property (nonatomic, assign) UIView *anView;
Тогда мне не нужно заботиться об управлении памятью. Мне не нужно делать [выпуск anView] в методе -dealloc.
Почему?
«assign» просто говорит компилятору: «Эй, чувак, это свойство не сохраняет того, что ему назначают». И тогда вы можете сделать
@synchronize anView;
и компилятор волшебным образом создает геттер и сеттер, где сеттер может выглядеть так:
- (UIView*) anView {
return anView;
}
и Сеттер может выглядеть так:
- (void) setAnView:(UIView*)newAnView {
anView = newAnView;
}
правильно / неправильно? Если это так, установщик не претендует на владение переменной newAnView, поскольку она не является свойством «сохранять». Он просто берет его и присваивает его переменной экземпляра. Таким образом, при рассмотрении политики владения нет необходимости освобождать переменную экземпляра anView в -dealloc. Объект не владеет им. Это правильно?