我正在构建一个读取像Bing或Pulse这样的rss文件的应用程序,所以我构建了一个类(UIViewController),它显示了feed中的每个条目以及一个包含该条目列表的类和另一个类一次显示所有的feed,我没有使用任何xib文件,所以我在每个类中实现了一个方法,在每次旋转后调用它来重置该类中的视图的帧。但是我在内存中遇到了一个问题,特别是在旋转发生时调用该方法,因为它知道它只是为视图中的每个帧分配一个CGRect。 那么请你帮我避免这个问题或建议一种不同的方法来避免它,我是不是不使用xib文件或我应该尽可能使用它们并在其中设置旋转的东西(使用自动调整大小掩码)。
如果有一些复杂的免费示例,例如那些应用程序,任何机构都可以指向我。
任何帮助将不胜感激, 并提前感谢...
答案 0 :(得分:2)
首先,当它们对您有用时,没有理由避免使用nib文件。它们通常很有用。当它们对您没用时,没有理由使用nib文件。如果你有复杂的布局,它们肯定非常有用。然而,是否使用它们是基于特定应用的个人选择。作为初学者,我建议使用它们并熟悉它们,特别是依靠Xcode模板来正确设置它们。
Nib文件不是你的问题,不管怎么说。你在泄漏记忆,你需要调查原因。首先,运行静态分析器以确保没有明显的错误。然后在仪器(泄漏)下运行您的应用程序并查找大量泄漏。然后在“仪器(分配)”下运行您的应用程序,并查找占用内存最多的内容。这应该指出你的错误。
最有可能的原因是,如果你没有深入了解你的代码,那就是你误用了ivars。确保您通过访问者访问您的ivars(init
,dealloc
和访问者除外)。直接访问您的ivars是iOS中内存问题的首要原因。
答案 1 :(得分:0)
正确释放已全局分配和定义的对象。当UIViewController处于活动状态时,不要释放它。大多数泄漏问题都是通过在UIViewController超出范围之前释放UIViewController的对象来实现的。