为了账号安全,请及时绑定邮箱和手机立即绑定

呼叫-retainCount被认为是有害的

/ 猿问

呼叫-retainCount被认为是有害的

慕的地6264312 2019-08-19 15:29:47

呼叫-retainCount被认为是有害的

或者,为什么retainCount我的暑假没有使用

这篇文章旨在征求关于该臭名昭着的方法的原因和原因的详细报道retainCount,以巩固围绕SO的相关信息。*

  1. 基础知识:不使用的官方理由是什么retainCount?是否有过任何情况下当它可能是有用的?应该做些什么?**随意编辑。

  2. 历史/解释:如果不打算使用Apple,为什么Apple在NSObject协议中提供此方法?Apple的代码是否依赖于retainCount某些目的?如果是这样,为什么不把它隐藏在某个地方?

  3. 为了更深入地理解:对象可能具有与用户代码假设不同的保留计数的原因是什么?您能否举例说明框架代码可能会使用哪些标准程序导致这种差异?是否有任何已知的情况,保留计数总是与新用户可能期望的不同?

  4. 你认为还有什么值得关注的retainCount吗?


*不熟悉Objective-C和Cocoa的编码人员经常努力解决或至少误解参考计数方案。教程解释可能提及保留计数,这(根据这些解释)当你打电话上去一个retainalloccopy由一个当你调用等,向下release(并在当你调用未来的某一时刻autorelease)。

因此,一个崭露头角的可可黑客克里斯可以很容易地认识到,检查一个对象的保留计数对于解决一些内存问题是有用的,而且,有一种方法可用于每个被调用的对象retainCount!克里斯打电话retainCount给几个对象,这个对象太高了,一个太低了,到底发生了什么?!因此,Kris在SO上发帖,“我的记忆管理出了什么问题?” 然后一群<bold>,<large>字母下降说“不要那样做!你不能依靠结果。”,这是好的,但我们的强悍编码器可能需要更深入的解释。

我希望这会变成一个常见问题解答,一个很好的信息论文/讲座的页面,我们的任何专家都倾向于写一个,当他们想知道时可以指出新的可可头retainCount

**我不想让它过于宽泛,但是经验或有关验证/调试保留和释放配对的文档的具体提示可能适合此处。

***在虚拟代码中; 很明显,一般公众无法访问Apple的实际代码。


查看完整描述

2 回答

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信