实际上,我真的想不出任何原因,为什么会发生访问已释放对象的情况,无论是否有僵尸。如果引用是强引用,则不会释放对象。如果引用很弱,则在对象被释放时它会被取消。
我想如果人们使用分配指针可能会发生这种情况。但这样做是自找麻烦。
但是,有时我的应用确实会因以下消息而崩溃:
然而,应用程序确实崩溃并出现错误:消息发送到已释放的实例 0x189f09c0
我不知道为什么。
UIViewController 从 UINavigationController 中弹出会发生什么情况。然后它的 viewDidScroll 即将被调用。
但这很奇怪。
我启用了僵尸。但是,不应该启用僵尸。这个答案清楚地表明,即使在使用 zomie 进行调试时,所有弱引用都会被取消
Are all weak references nilled if we enable zombie object?
那么发生了什么?
如果你想找出被释放的实例并追踪它的生命周期(它被保留和释放的时间和地点),请参阅 link
对我帮助很大!
关于ios - 如果我们从不使用分配指针,有什么办法可以访问已释放的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20419020/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |