gpt4 book ai didi

ios - 为什么 iOS 向释放的对象发送内存警告,导致我的应用程序崩溃?

转载 作者:行者123 更新时间:2023-11-29 10:25:32 24 4
gpt4 key购买 nike

我正在搜索我的应用程序的崩溃日志,我看到了这个(它安静地发生了几次,而不是一两次):

enter image description here

如上所示,通知中心发布了一个内存警告通知,并且以某种方式转发给了一个CALayer。我还看到 didReceiveMemoryWarning: 消息的实例发送到其他已释放的对象,例如 UIImageView 甚至私有(private) _UINavigationBarBackground 对象,当启用僵尸时在我的调试器上,我的应用程序也崩溃了。为什么会这样?

最佳答案

NSNotificationCenter 只保留对观察者的引用。

可能发生的情况是您在某处有一个或多个对象注册了 UIApplicationDidReceiveMemoryWarningNotification,但从未取消注册(这是一个错误)。由于 NSNotificationCenter 只保留对这些对象的弱引用,因此当它们被释放时它不会注意到,并且它们的内存被其他对象重用,例如 CALayer 等,这些对象没有实现名为 didReceiveMemoryWarning 的方法。

关于ios - 为什么 iOS 向释放的对象发送内存警告,导致我的应用程序崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32514884/

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