gpt4 book ai didi

iOS - 使用 dealloc 删除观察者

转载 作者:行者123 更新时间:2023-11-29 02:41:13 26 4
gpt4 key购买 nike

我有一个关于移除观察者的基本问题。

我有一个 ViewController 父类,它由 3 个 ViewController 子类继承。例如。 BookVC -> BookHotelVC, BookFlightVC, BookTrainVC

在这里,我在父类的 viewDidLoad 中添加了一个观察者(我在子 ViewControllers 中做 [super viewDidLoad] ),它通知在父类中编写的方法。我的代码-

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(BookingCompleted:) name:@"BookingCompleted" object:nil];

现在我想在我离开任何子 ViewController 时删除观察者,但我不能在每个子的 dealloc 中编写 [super dealloc] ViewController,因为 ARC 不允许这样做。

如何删除已设置的观察者?因为每当我移动到子 ViewController 时,都会添加一个新的观察者,这会导致奇怪的事情(比如,调用该方法两次/三次...... - 调用警报两次/三次......)。

请提出建议。

最佳答案

删除 dealloc 中的观察者是可以的,不要调用 [super dealloc] (如你所见,启用 ARC,编译器不会让你这样做),只需写:

- (void)dealloc {
[self removeYourObservers];
}

关于iOS - 使用 dealloc 删除观察者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25773229/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com