gpt4 book ai didi

ios - 我应该在哪里使用 ARC 释放静态局部变量和全局变量?

转载 作者:行者123 更新时间:2023-11-29 12:54:44 24 4
gpt4 key购买 nike

我刚刚在我的项目中创建了一个新类,UITableViewController 的子类,并注意到在方法 tableView:cellForRowAtIndexPath: 模板中,Apple 仍然提供静态本地 NSString 用作单元格标识符。

我知道对于静态全局/局部变量我们需要分配 nil 因为它被认为是强的。

所以我问自己一个问题:我应该在哪里将 nil 分配给静态全局变量?和静态全局变量?

谢谢大家的回答

最佳答案

对于“应该在哪里释放静态全局变量”的简短回答是“无处可去”。

长答案是这样的:当您创建一个变量static 或全局变量时,您希望它存在而不管您的类的任何实例是否存在或被释放。简单地说,您希望您的 static 始终在您身边。因此,释放它们的唯一原因是您的程序即将退出。但是,如果您的程序无论如何都要退出,您不妨让操作系统为您处理清理工作,而忘记释放您的全局变量和静态变量。

但是请注意,static 和全局变量的使用应该是异常(exception)情况,而不是常态。您使用它们有充分的理由,并运用您的最佳判断来决定什么应该是 static。此外,您应该避免通过强引用从静态变量引用非静态变量的集合,否则您可能会造成难以发现的内存泄漏。

用作单元标识符的 NSString 的静态本地没有任何问题:它占用的内存非常少,并且不会增长,所以它没有被释放也没什么大不了的在程序运行结束时。

关于ios - 我应该在哪里使用 ARC 释放静态局部变量和全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21439943/

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