2010-11-27 90 views
0

HI 我对内存管理 问题如果我ALLOC加工对象物1时,然后我保留2的时间,然后释放4时间& 然后保持1次相同的对象。我的最终答案是什么?存储器管理保留

回答

3

Crrrrraaassshh!

+0

你能解释我吗? – Rocky 2010-11-28 01:40:26

+1

Alloc/retain/release有点像铅(或皮带)上的狗。你分配你的东西 - 你把狗放在皮带上。你保留两次 - 两个人一起来,并把你的狗的线索。狗不能逃跑,因为它现在在3条线上。即使取得了我的领先优势,但直到所有3条线索都被移除后,狗才会免费。即如果您释放对象3次,它将被释放。你说的是你想要释放对象4次。那么恐怕第三次发布后,你的狗已经逃跑追逐松鼠,你的第四次发布会崩溃你的应用程序。你应该阅读苹果文档。 – hooleyhoop 2010-11-28 17:37:08

1

该对象将在第三次发布后(当retainCount命中为零)和第四个release将被发送到无效对象后处理,从而导致崩溃。

如果您希望某个对象在释放后暂时存在一段时间,则应该查看autorelease方法。