Я использую ivar в блоке реактивного какао, устанавливаю ослабление (self) и закрепляю (self), чтобы разорвать цикл удержания. Но когда я запускаю код, он вызывает утечку памяти, контроллер не вызывает метод dealloc
. Если я изменю ivar на свойство, он будет работать правильно. Я так запутался и долго искал. Пожалуйста, скажи мне почему.Почему использование ивара может вызвать удержание цикла в реактивном какао?
- (void)viewDidLoad {
[super viewDidLoad];
...
@weakify(self);
[RACObserve(self, something) subscribeNext:^(id x) {
@strongify(self);
[_button setBackgroundColor:[UIColor redColor]];
}];
}
- (void)dealloc {
}
'@weakify (само)' объявить слабый себя, '@ strongify (self) 'объявляет сильное« я ». 'self.button' означает использовать сильную, но' _button' не использует ее. спаси мой день. – Monqi