gpt4 book ai didi

iphone - iPhone “Device”内存泄漏

转载 作者:行者123 更新时间:2023-12-03 13:21:55 25 4
gpt4 key购买 nike

运行xcode->使用仪器运行->泄漏后,
用细齿梳子越过模拟器,并且(模拟器)仪器->泄漏显示为零。但是当我运行实际的设备时,我会得到大约100多种物品的 list ,

Leaked Object   #   Address Size    Responsible Library Responsible Frame
GeneralBlock-64 9 < multiple > 576 UIKit GetContextStack
GeneralBlock-16 7 < multiple > 112 WebCore WebThreadCurrentContext
UIControlTargetAction 5 < multiple > 160 UIKit -[UIControl addTarget:action:forControlEvents:]
__NSArrayM 5 < multiple > 160 UIKit -[UIControl addTarget:action:forControlEvents:]
UIButton 5 < multiple > 720

等等等等等等..

我读到某处提到某人时提到,如果创建任何线程,它们必须位于主线程上? (WTF?没有任何意义)。

是的,我的应用程序使用线程,但仅用于呈现 UIAlertViews,它们都夹在 [pool autorelease][pool release]之间,还有零未发布的 NSStrings,按钮,小部件。分配,复制,保留和发布的所有内容都将被释放。

任何人都知道这个线程池化,导致疯狂的内存泄漏吗?

提前致谢!

**** 2011年5月25日(日本时间上午11:35) ***********

好的,我想我已经确定了内存问题的原因...那是那些令人困扰的“AutoRelease UITableViewCells” ...在导致我的应用崩溃之前,它们没有及时发布。我只是查看了AppleTableViewCell API,却没有发现有关确定“TV-Cell”是否真正在使用中的信息。因为我的应用程序每页只能容纳30个单元,但是这些自动释放单元不断增长,直到收到内存不足警告(124个电视单元)。任何人...?知道如何安全释放这些...吗? –

我试过使用常规的'Alloc',然后释放从De-queue中直接出来的那个(只是,我知道至少有很多人正在释放,但不出所料,它不是那样的。因此,我想知道是否有可能在ViewDidUnload()中为(队列中的单元格)[释放单元格]并在整个队列中进行步枪来确保它们全部被杀死(当然,我不会使用自动发布)任何想法,任何IOS大师..?提前谢谢!– ChinaSailor 40秒前编辑

最佳答案

您需要在启用了“僵尸”的情况下运行“仪器”,以便泄漏的对象在泄漏后可以检查。

仅在环境变量中包含NSZombieEnabled是不够的。您也必须在Instrument中将其打开。本教程对我有帮助; How To Debug Memory Leaks with XCode and Instruments Tutorial

关于iphone - iPhone “Device”内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6105336/

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