1

我们知道静态与单例的争论,所以这个问题与静态关键字的合法性无关。

当您有一个静态类时,Monotouch 如何处理该类的内存。收到内存警告时是否删除其成员?是否有关于在 Monotouch 中使用静态类的指南?

4

1 回答 1

4

静态类和成员将在应用程序的整个生命周期中存在。

一般来说,我不会担心静态类。最需要担心的是确保您正确清理ViewDidUnload所有控制器中的内容。

在这里你应该:

  • Dispose 并将任何 outlet 设置为 null (ReleaseDesignerOutlets将在 MonoTouch 的更高版本中执行此操作)您必须自己为从代码创建的任何视图执行此操作
  • 对创建的 UIImage、UIFont 等的任何实例执行相同的操作ViewDidLoad
  • ViewDidUnload应该是镜像ViewDidLoad

ViewDidUnload在当前不在屏幕上的控制器的低内存条件下调用,例如在堆栈中的控制器UINavigationControllers等。

此外,您可能希望从UINotificationCenter缓存 UIImage、UIFont 等的任何帮助程序类中挂钩低内存通知。

释放视图和图像将释放更多内存,而静态类正在使用多少内存。

于 2012-08-28T12:14:30.977 回答