Ios 若我们在对象上调用autorelease,它在运行时崩溃的方式和原因是什么?
我想,若我们调用对象上的自动释放,它会减少保留计数,当最后池耗尽时,它会从自动释放池中清除对象。但当在对象上调用autorelease时,它如何在运行时崩溃。任何人都可以举例说明。在MRR/MRC下,程序员负责保留和释放对象。如果保留的数量多于释放的数量,则对象保持活动状态,当释放的数量与保留的数量匹配时,则对象将被释放,如果在此之后执行进一步的释放,则可能发生崩溃 自动释放只是一个延迟发布,所以它可能会像发布一样导致崩溃。例如,样本时间线: 创建/保留对象 使用对象 Autorelease对象-存储在池中供以后发布的对象 继续使用对象-很好,因为它仍然活着 释放对象-对象被释放,占用的内存可以重用 池被清空,现在引用长死对象的对象指针被传递到release。。。轰 这只是一种情况,还有其他情况,例如自动删除对象的次数太多(超过保留的次数)Ios 若我们在对象上调用autorelease,它在运行时崩溃的方式和原因是什么?,ios,objective-c,Ios,Objective C,我想,若我们调用对象上的自动释放,它会减少保留计数,当最后池耗尽时,它会从自动释放池中清除对象。但当在对象上调用autorelease时,它如何在运行时崩溃。任何人都可以举例说明。在MRR/MRC下,程序员负责保留和释放对象。如果保留的数量多于释放的数量,则对象保持活动状态,当释放的数量与保留的数量匹配时,则对象将被释放,如果在此之后执行进一步的释放,则可能发生崩溃 自动释放只是一个延迟发布,所以它可能会像发布一样导致崩溃。例如,样本时间线: 创建/保留对象 使用对象 Autorelease对象
这就是方法。要解决此问题,请仔细检查手动内存管理,或自动切换到ARC,只需手动处理以避免泄漏。跟踪手动保留计数问题可由“静态分析器”完成“在Xcode中。它解释了内存出现问题的原因和位置。运行它并解决问题。可以显示代码吗?为什么不使用ARC?自动释放不会减少保留计数。它会将对象放入自动释放池中。”。