0

我正在构建一个读取 rss 文件的应用程序,例如 Bing 或 Pulse,因此我构建了一个类 (UIViewController),它显示提要中的每个单独条目,以及一个包含该条目列表的类和另一个显示所有一次提要,并且我没有使用任何 xib 文件,因此我在每个类中实现了一个方法,该方法在每次旋转后被调用以重置该类中视图的框架。但是我在内存中遇到了一个问题,尤其是当旋转发生时调用该方法时,知道它只是为视图中的每个帧分配了一个 CGRect 。所以你能帮我避免这个问题或建议一种不同的方法来避免它,我是否正确不使用 xib 文件或者我应该尽可能使用它们并在其中设置旋转的东西(使用自动调整大小的蒙版)。

如果有像这些应用程序这样的复杂免费示例,任何人都可以指出我。

任何帮助将不胜感激,并在此先感谢...

4

2 回答 2

2

首先,当 nib 文件对您有用时,没有理由避免使用它们。它们通常很有用。当 nib 文件对您无用时,没有理由使用它们。如果您有复杂的布局,它们肯定非常有用。但是,是否使用它们是基于特定应用程序的个人选择。作为初学者,我建议使用它们并熟悉它们,尤其是依靠 Xcode 模板来正确设置它们。

笔尖文件不是您的问题,无论哪种方式。您正在泄漏内存,您需要调查原因。首先,运行静态分析器以确保没有明显的错误。然后在 Instruments (Leaks) 下运行你的应用程序并寻找大的泄漏。然后在 Instruments (Allocations) 下运行您的应用程序并查找占用最多内存的内容。那应该指出你的错误。

在没有深入了解您的代码的情况下,最可能的原因是您滥用了 ivars。确保您通过访问器访问您的 ivars(除了 ininitdeallocin 访问器)。直接访问您的 ivars 是 iOS 中内存问题的第一大原因。

于 2011-08-02T13:55:59.223 回答
0

正确释放已全局分配和定义的对象。当 UIViewController 处于活动状态时,不要释放它的对象。大多数泄漏问题是通过在 UIViewController 超出范围之前释放它的对象而发生的。

于 2011-08-02T13:55:45.053 回答