如何在.m文件中编码属性

时间:2012-10-09 18:55:57

标签: xcode

自从下载最新版本的Xcode以来,我刚刚开始了一个新的Xcode项目。我立刻注意到,在.h文件中声明属性时,它不会在.m文件中自动合成,也不会在ViewDidUnload存根中设置为nil。此外......没有ViewDidUnload IBAction存根。经过对堆栈溢出的一点研究后,我意识到这是新的和正常的。

我还注意到了新的didReceiveMemoryWarning并且有人写了以下内容:如果你想释放与视图或其他UI对象无关的内存,请使用didReceiveMemoryWarning。

我的问题是......之前,Xcode会在viewDidUnload中自动将属性设置为nil。它没有在didReceiveMemoryWarning中将它们设置为nil。我应该在didReceiveMemoryWarning存根中手动将它们设置为nil,还是只在Xcode创建.m文件时将存根保留为空?有没有在不再使用时需要将属性设置为nil的任何地方,或者Xcode现在是否会自动执行此操作?

谢谢!

1 个答案:

答案 0 :(得分:1)

大多数UI元素使用的内存非常简单。这是iOS已弃用(现在不再调用)viewDidUnload的原因之一。只是没有问题足以证明麻烦(包括可能的错误)。

didReceiveMemoryWarning是您应该减少重要内存使用量的地方。特别是,它是转储您可以重建的任何缓存信息的好地方。在我看来,你应该看看至少10s的范围内的东西。倾倒几百个字节通常不值得管理它所需的代码(代码本身需要内存,加上测试和维护)。如果你不缓存很多,你可能在许多程序中根本不需要didReceiveMemoryWarning。 (还有其他工具,例如NSCache,它们比手动编码didReceiveMemoryWarning更好。)