我正在使用的一个非 ARC 预编译静态库正在我的主线程上发送我的 ARC 应用程序“事件”NSObjects,它已放置在主线程的自动释放池中。我的应用程序作用于处理函数中的事件对象,但不会保留或释放它,也不会再次使用它。
使用 Zombies 时,当主事件循环耗尽顶级自动释放池并且其中一个事件 NSObject 正在被释放时,我偶尔会休息一下。闻起来好像 ARC 已经释放了事件对象(也许当它超出我的处理程序的范围时),然后主事件循环再次释放它。
这是一个合理的理论,还是这是不可能的,我还有另一个错误?
如果可能的话,我可以在我的应用程序中做些什么来防止这种情况发生?