gpt4 book ai didi

iphone - 内存管理困境, Objective-C

转载 作者:行者123 更新时间:2023-12-01 17:21:42 26 4
gpt4 key购买 nike

我一直在测试Objective -C的不同功能,并达到了涉及内存管理的主题。显然,在阅读少量文档时,似乎内存管理对于构建功能良好的应用程序非常严格。

现在,根据我的理解,当我们分配内存时,对象的retainCount将变为 1 。但是我为学习目的写的东西却给了我异常的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]);
}

执行完我的代码后立即输入 reatainCount

简短的解释将给我一个提示,并且感谢外部阅读资源。
谢谢

最佳答案

不要依赖保留计数。它们仅应用作调试工具。原因是,如果对象获得retain ed和autorelease d,则其有效保留计数未更改,但其实际保留计数增加了1。当自动释放池耗尽时,它将在将来的某个时间点release d。因此,您不能依靠保留计数来了解对象是否已正确管理。

较大的保留数(例如8)可能表示编程错误(例如,将其保留了太多次),但这也可能只是表明retainautorelease已经被执行了很多次,这虽然很奇怪,但是可能完全有效。

关于iphone - 内存管理困境, Objective-C ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7163440/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com