我在控制台中使用print(int)[self retainCount]来测试它.
0似乎只出现在我的NSOperation的dealloc中,它们正在NSOperationQueue中运行.
知道为什么会这样吗?
解决方法 在-dealloc中,对象的保留计数无关紧要.出于实际目的,它是未定义的.引用计数的正常实现使用大于零的值的外部引用计数 – 请参阅NSIncrementExtraRefCount()和NSDecrementExtraRefCountWasZero().当extraRefCount计数为零时,refCount为1.当调用NSDecrementExtraRefCountWasZero()并且extraRefCount已经为零时,它返回YES并调用-dealloc.除了处理NSDecrementExtraRefCountWasZero()的返回值时,无法区分refCount为1和refCount为零.
NSOperation获得零refCount表明它没有使用正常机制.
总结以上是内存溢出为你收集整理的Objective-C保留dealloc中的计数全部内容,希望文章能够帮你解决Objective-C保留dealloc中的计数所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)