gpt4 book ai didi

ios - 在dealloc方法中检查保留计数

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

最近,我遇到了一个问题,我正在从屏幕A导航到屏幕B。当我从屏幕B返回到屏幕A时,应用程序中的“实时字节”未恢复为初始值。经过进一步的调查,我发现我使用某些被称为多个方法的方法保留了一些全局对象。因此,我不得不修复该方法的调用机制。

我已解决此问题,但我正在考虑一种替代解决方案。如果我只是在dealloc中使用了for循环,该循环取决于保留计数的值,该怎么办。我认为不建议使用这种方法,但是如果我确定不能从文件外部的任何位置访问对象,则此方法的确切问题是什么?

提前致谢。

最佳答案

如果我只是在dealloc中使用了for循环,该循环取决于保留计数的值,该怎么办。

如果Xcode检测到这样的代码并用数个放大器为MacBook Pro的铝制外壳供电,我不会感到惊讶。

我认为不建议使用这种方法,但是什么是
如果我确定对象不是这种方法的确切问题
从文件外部的任何位置访问。

您是对的-不可取。至少有两个问题:

  • 它完全打破了Objective-C的内存管理范例。您真的不能确定没有其他对象保留您的对象之一。只是一个示例:您不知道-dealloc方法中是否已自动释放了ivars所引用的任何对象。
  • 这是错误的解决方法。提出建议并不能解决代码中的错误,只能掩盖它们。您的对象应该正确管理它们使用的对象,而不用担心其他对象可能保留或不保留。如果遵循该简单公式,则不必担心是否从“文件外部”访问对象-一切正常。

  • 您不仅不应该使用 -retainCount来将保留数降低到0, you shouldn't look at -retainCount at all

    关于ios - 在dealloc方法中检查保留计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15197016/

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