gpt4 book ai didi

iphone - XCode 探查器 "Leaked Blocks"表中的条目是否暗示确实存在泄漏?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:26:30 24 4
gpt4 key购买 nike

XCode 分析器“Leaked Blocks”表中的条目是否暗示确实存在泄漏?

这是假设我在探查器下运行我的 iPhone 应用程序,而不是查看泄漏的 block 信息。所以我的列表顶部有多个 NSDate 行。如果我点击这些行之一,我可以向下导航到有问题的代码位。

所以我想确认“泄漏 block ”表中的所有条目实例是否暗示那里存在真正的泄漏,需要更新/修复编码才能解决?

注意 - 我问的原因之一是我在这里发布的代码 do I have to release the NSDate in this code below?例如,来自探查器在“Leaked Blocks”下向我推荐的代码,但是代码(引用这篇文章)已经被其他人审查过,他们告诉我它没问题。

最佳答案

do the entries in the XCode profiler "Leaked Blocks" table imply there was definite leakage?

是的。

泄漏以惰性方式评估。 leaks 不能保证捕获所有泄漏,因为它实际上并不记录所有引用 - 它只是扫描进程的内存(包括堆栈和寄存器)以查找事件分配的模式(例如指针值)。

man leaks 将为您提供实现的细节,弱点部分确认了我对您问题的回答,并给出了无法检测到泄漏的情况示例。

如果您以真正复杂的方式管理您的分配(例如指针算术/偏移量),您实际上可以绕过系统并引入误报——不要那样做 =)

当您在 SO 上发布代码并且人们告诉您它是正确的时,他们意味着您发布的程序是正确的 - 泄漏(在这种情况下引用计数不平衡)在另一个<中引入/em> 程序的一部分。也就是说,您返回的指针(链接中的 newDate)没有被调用者正确地引用计数,或者调用者将它传递给谁。

instruments all 为您记录所有引用计数 - 以防静态分析没有返回任何问题。

具体来说,仪器会向您显示泄漏的分配/对象是创建的位置。

希望对您有所帮助。

关于iphone - XCode 探查器 "Leaked Blocks"表中的条目是否暗示确实存在泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6092547/

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