Tea*_*App 1 iphone memory-leaks memory-management objective-c ios
我一直在测试Objective -C的不同功能,并达到了处理内存管理的主题.显然,在阅读少量文档时,内存管理似乎非常严格,以便构建功能良好的应用程序.
现在按照我的理解,当我们分配一个内存时,一个对象retainCount将变为1.然而,我为学习目的写的东西,它给了我异常retainCount
这对我来说可能是一个不正常的数字,但是那些在幕后知道的人,请你解释我是如何得到这个retainCount以及发布它的最佳方法.
具有异常retainCount的代码,
对象名称是: ...(UISlider *) greenSender...
-(IBAction) changeGreen:(UISlider *)greenSender{
showHere.textColor = [UIColor colorWithRed:red.value green:greenSender.value blue:blue.value alpha:1.0];
NSLog(@"retainCount %d",[greenSender retainCount]);
}
Run Code Online (Sandbox Code Playgroud)
有reatainCount,只是执行我的代码之后.

简短的解释会给我一个提示,外部阅读资源将受到赞赏.谢谢
不要依赖保留计数.它们只应用作调试工具.原因是如果一个对象被retained和autoreleased,它的有效保留计数没有改变,但它的实际保留计数增加了一个.release当自动释放池耗尽时,它将在未来的某个时刻出现.因此,您无法依赖保留计数来了解对象是否已正确管理.
大的保留计数(例如8)可能表示编程错误(例如保留它太多次),但它也可能只是一个标志,它已被retain编辑并且autorelease次数很多,虽然好奇,但可能是完美的有效.
不要相信/依靠retainCount.真.
来自Apple:
重要说明:此方法在调试内存管理问题时通常没有价值.因为任何数量的框架对象可能保留了一个对象以保存对它的引用,而同时自动释放池可能在对象上保留任意数量的延迟版本,所以您不太可能从此获取有用信息方法.
| 归档时间: |
|
| 查看次数: |
115 次 |
| 最近记录: |