当我在Xcode中创建UIViewController
的新子类时,它带有默认方法,例如init
和viewDidLoad
。最后一个是didReceiveMemoryWarning
。这让我想到,如果我使用ARC,我应该担心吗?这是默认方法。
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
这里的关键字是dispose。由于我在使用ARC时无法在任何对象上显式调用release
,我是否应该实现此方法?
答案 0 :(得分:6)
是。使用ARC或MRC没有区别。无论哪种方式,您的应用程序都可能获得内存警告使用didReceiveMemoryWarning
清理您可以使用的任何内存,例如清空缓存等等。
您仍然可以清除ARC下的对象,以便取消分配它们。您只需要删除对象的所有引用。
答案 1 :(得分:0)
是的,你应该实现它,即使你只是“按原样”保留它。只需调用[super didReceiveMemoryWarning]
即可让您的应用在内存不足的情况下清理内存(这可能是由您的应用以外的其他原因造成的),例如发布缓存图像(例如通过imageNamed或Storyboard加载)或视图当前不可见。