2012-02-02 121 views
3

我有一个基于钛的iOS应用程序,基本上是遵循我自己的MVC结构。它有大约30个视图和大量的网络连接来完成API调用。所以,似乎该应用程序在除iPhone4S之外的实际设备上表现低迷。具体来说,从多任务菜单重新启动后,该应用程序将挂起大约10秒。有小费吗?什么是优化钛应用程序的最佳方法?

回答

6

你大多不得不关心内存泄漏。关于这个问题,你有一个非常重要的webcast。 总之;要非常小心地:

  • 避免全球大对象:他们有世界上引用,所以这些引用将不会被清零
  • 消除任何圆形dependances:垃圾回收是不是一个垃圾收集器!它只是在有0个引用时对引用进行计数并杀死对象。对于圆形物体,总是有1个参考。
  • 避免事件上Ti.App:哎哟!但是,要求addEventListener的对象永远在Ti.App监听器总线中。公共汽车保持引用将事件发送到该对象,所以它将永远存在,所以它将成为它的引用。
  • 小心其他事件。
  • 请注意动画:它们具有引用该应用程序的回调。这些回调是可能留在内存中的函数(所以变量),所以它的引用也是如此。

简而言之,您的应用程序必须尽可能靠近一棵没有反向引用的简单树。当你在树上时写myDownObject = null。 使用'代理'过滤器在您的Mac上使用HEAVILY Instruments。所有钛物体都是UIProxy。

相关问题