2012-07-01 28 views
0

我回头浏览了一个旧应用程序(实际上是我的第一个应用程序),并试图减少内存使用量,以阻止它在较旧的设备上崩溃(我在旧设备上运行它,并通过配置文件仪器,这绝对是导致其崩溃的内存问题)。不幸的是,当我创建应用程序时,我对iOS开发的常见做法并不十分熟悉,并且对其进行了非常差的构建:使用一个视图控制器和一个xib文件,根据需要隐藏和显示界面元素。通过分割.xib文件减少内存使用量?

现在我想知道是否值得做一次彻底的检修并重新开始,包括多个类和视图控制器,以及是否会减少加载应用程序所需的大量内存(70 + MB)。

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

+0

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

回答

1

很难知道它会有多大的帮助,而不知道你的应用程序真正发生了什么。这里有一些一般的提示可以帮助你:

  • 拆分你的视图控制器,所以你有一个视图控制器每个视图。在某些情况下,视图控制器应该实际控制多个视图(无论是为了内存效率还是性能等),而是以此为出发点。
  • 请勿将所有对象放在一个XIB中。将它拆分出来,以便每个视图控制器都有一个XIB,并让iOS在需要时加载XIB元素。
  • 以编程方式创建界面元素不会帮助解决内存使用问题。
  • 请注意您缓存的内容,并且只有在存在明显的性能优势时才将内容保留在内存中。

如果您决定重写您的应用程序,请务必使用工具来评估您的应用程序,以便衡量您的进度。

+0

“以编程方式创建界面元素不会对内存使用产生帮助” 但是,它会在加载期间帮助内存吗? – Greg

+1

以编程方式创建接口元素(可能)将使用与XIB中相同数量的内存。这里的目标是控制元素何时被实例化。如果以编程方式执行此操作,则可以控制更好的创建时间,可能会延迟到稍后。不过,我建议将XIB分解出来,以便在实际需要时才加载它们,因为这样可以达到相同的效果(并且构建起来更容易)。 – sigre