gpt4 book ai didi

objective-c - UIViewController 在 ARC 环境下的 didReceiveMemoryWarning

转载 作者:太空狗 更新时间:2023-10-30 03:21:44 25 4
gpt4 key购买 nike

我正在评估切换到 ARC(自动引用计数)和重构以应用于我的代码。在我必须弄清楚的事情中,有这样的:

didReceiveMemoryWarning如果ARC不允许显式释放对象怎么办?目前,我使用该方法释放属于我的 Controller 的对象,并且可以通过惰性 getter 轻松检索这些对象:

- (void)didReceiveMemoryWarning {
[_foo release]; _foo = nil;
[super didReceiveMemoryWarning];
}

和相对懒惰的 setter/getter :

- (Foo *)foo {
if (_foo) {
return _foo;
}
return (_foo = [[Foo alloc] init]);
}

在 ARC 中实现这样的“模式”似乎是不可能的……所以,我该怎么办? didReceiveMemoryWarning 是否应该在 ARC 中被视为“已弃用”/无用?

最佳答案

ARC 处理保留和释放代码,因此将 _foo 设置为 nil 足以让 ARC 生成的代码执行释放。您无需明确发布,您只需管理您的对象图,ARC 生成的代码将在适当的时候执行发布。

阅读 Apple 的 Transitioning To ARC Release Notes文档以获取更多信息。

关于objective-c - UIViewController 在 ARC 环境下的 didReceiveMemoryWarning,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7766581/

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