在运行循环结束时排空池时如何保留对象值

时间:2012-03-23 12:02:27

标签: iphone ios

我知道这听起来像一个愚蠢的问题,但我需要问这个问题。好吧,我读到自动释放池在处理完事件后经过一次迭代运行循环后耗尽。我的问题是,当我点击按钮后,我的应用程序对象是如何保留的。因此,根据定义它应该在我点击按钮后销毁我创建的所有对象(可能是我已经为对象分配了一些值)。但那不会发生吗?对 ?我可以一次又一次地点击我的按钮,但我不会丢失任何对象数据。 如果我在某处错了,请纠正我。

2 个答案:

答案 0 :(得分:0)

自动释放池执行的所有操作都会减少池中对象的保留计数。如果这导致保留计数变为零,则对象将被销毁(dealloc'ed)。

但是,如果一个对象被多次保留,则保留计数将大于零,因此不会被销毁(请注意,创建的对象的保留计数为1.)

答案 1 :(得分:0)

您应该观看https://developer.apple.com/videos/中的一两个视频 - 对内存管理等的精彩介绍。我还强烈建议您在掌握保留/释放/自动释放的基础知识后立即查看ARC。