可可触摸 – 仪器泄漏,参考计数和自动释放

可可触摸 – 仪器泄漏,参考计数和自动释放,第1张

概述仪器报告我泄漏了NSDate变量.但是,如果我将保留和释放加起来,它应该能够通过自动释放池释放.可能我错了,但我不想确定.看看RefCt. 如果我[类分配]它应该得到一个保留计数为1,那么如果我自动释放该对象,它应该能够释放,或者不是吗? Instruments会为您添加保留和发布.这就是“RefCt”栏中显示的内容:运行总计. If I [Class alloc] it should come 仪器报告我泄漏了NSDate变量.但是,如果我将保留和释放加起来,它应该能够通过自动释放池释放.可能我错了,但我不想确定.看看RefCt.
如果我[类分配]它应该得到一个保留计数为1,那么如果我自动释放该对象,它应该能够释放,或者不是吗?解决方法 Instruments会为您添加保留和发布.这就是“RefCt”栏中显示的内容:运行总计.

If I [Class alloc] it should come up with a retain count of 1,…

确实如此;这是列表中的第一行.

… then if I autorelease that object,it should be able to free,or is it not?

自动释放不是立即-1;它会导致稍后释放,那是-1.

所以你有了:

>分配:1(= 1)
>自动释放:现在为0;导致稍后发布(现在没有变化,所以仍然= 1)
>保留:1(= 2)
>发布:-1(= 1)
>保留:1(= 2)
>保留:1(= 3)
>发布:-1(= 2)
>发布:-1(= 1)

请注意,三个版本中的一个是由autorelease引起的版本之一.只有这时才招致-1.

该对象需要另一个版本才能被释放.在那之前,它不会.

是的,有一个具有足够突出自动释放的对象可能会在它们到来之前将其杀死,因为它会在发生之前被保留,从而保持活着状态.我看到这种情况发生过一次我保留不足的物体,但那是Binding使用的属性的值; Binding保留了这个值,所以即使在我自己最后一次拥有它之后也保持活着.

总结

以上是内存溢出为你收集整理的可可触摸 – 仪器泄漏,参考计数和自动释放全部内容,希望文章能够帮你解决可可触摸 – 仪器泄漏,参考计数和自动释放所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1004902.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存