【问题标题】:Reducing memory usage by dividing .xib files?通过划分 .xib 文件来减少内存使用?
【发布时间】:2012-07-01 17:22:45
【问题描述】:

我正在回顾我的一个旧应用程序(实际上是我的第一个应用程序),并试图减少内存使用量,以防止它在旧设备上崩溃(我在旧设备上运行它并分析使用仪器,肯定是内存问题导致它崩溃)。不幸的是,当我制作这个应用程序时,我对 iOS 开发的常见做法不是很熟悉,并且结构很差:一个视图控制器和一个 xib 文件,根据需要隐藏和显示界面元素.

现在我想知道是否值得对多个类和视图控制器进行全面检修并重新开始,以及这是否会减少加载应用程序所需的大量内存 (70+MB)。

另外,如果我只是清空 .xib 文件并以编程方式加载所有界面元素(并继续使用一个 .xib 文件),它会起作用吗?

【问题讨论】:

  • 我喜欢将xibs清空成代码,因为如果你喜欢,你可以保持相同的界面设计;整个

标签: iphone ios class memory ram


【解决方案1】:

如果不知道您的应用中真正发生了什么,就很难知道它有多大帮助。不过,这里有一些通用提示可以帮助您:

  • 拆分视图控制器,这样每个视图都有一个视图控制器。在某些情况下,视图控制器实际上应该控制多个视图(为了内存效率、性能等),但请以此为起点。
  • 不要将所有对象放在一个 XIB 中。将其拆分,以便每个视图控制器拥有一个 XIB,并让 iOS 在需要时加载您的 XIB 元素。
  • 以编程方式创建界面元素无助于内存使用。
  • 注意缓存的内容,只有在具有明显性能优势的情况下才将内容保存在内存中。

如果您决定重写您的应用,请务必经常使用 Instruments 对其进行分析以衡量您的进度。

【讨论】:

  • “以编程方式创建界面元素不会有助于内存使用”但是,它会在加载期间帮助内存吗?
  • 以编程方式创建界面元素(可能)将使用与 XIB 中相同的内存量。这里的目标是控制元素何时被实例化。如果您以编程方式执行此操作,则可以更好地控制何时创建它,也许将其延迟到以后。但是,我建议将您的 XIB 分开,以便仅在您真正需要它们时才加载它们,因为这将达到相同的效果(并且更容易构建)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-18
  • 1970-01-01
相关资源
最近更新 更多