gpt4 book ai didi

iphone - 为什么我的观察员未注册?

转载 作者:行者123 更新时间:2023-11-28 22:41:41 24 4
gpt4 key购买 nike

我正在查看 TestFlight 中的崩溃报告,最常见的崩溃是:

Cannot remove an observer "ListViewController 0x1d590500" for the key path "batchImageDownloadingInProgress" from "ListArchiver 0x1d5b83b0" because it is not registered as an observer.

ListViewController 中:

- (void)viewWillAppear:(BOOL)animated
{
...

[[WanderlistArchiver sharedArchiver] addObserver:self forKeyPath:@"batchImageDownloadingInProgress" options:NSKeyValueObservingOptionNew context:nil];
}

// **** the error happens in here ****
- (void)viewWillDisappear:(BOOL)animated
{
...

[[WanderlistArchiver sharedArchiver] removeObserver:self forKeyPath:@"batchImageDownloadingInProgress"];
}

如果我在 viewWillAppear 中设置观察者(并且不要在代码中的其他任何地方触及它),为什么当 viewWillDisappear 运行时它仍然没有注册?这种情况在过去 90 天内只发生过 5 次,但我仍然想了解为什么会发生这种情况。

最佳答案

最有可能的问题是 viewWillDisappear: 在每次调用 viewWillAppear: 时被多次调用。由于这似乎很少发生,因此一定有一些奇怪的事件序列导致了这种情况的发生。

如果无法重现问题,一种可能的解决方法是添加 BOOL ivar。添加观察者时,在 viewWillAppear: 中将其设置为 YES。在 viewDidAppear: 中,检查它是否已设置。如果设置,则将其设置为 NO 并删除观察者。如果未设置,则您知道不要删除观察者。

关于iphone - 为什么我的观察员未注册?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14364736/

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