Monotouch中的静态和内存管理

时间:2012-08-28 09:48:17

标签: xamarin.ios

我们知道静态与单身的辩论,所以这个问题不是静态关键字的合法性。

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

1 个答案:

答案 0 :(得分:4)

静态类和成员将在应用程序的生命周期内挂起。

一般来说,我不担心静态类。最值得担心的是确保在所有控制器中ViewDidUnload正确清理。

在这里你应该:

  • 处理并设置任何出口为空(ReleaseDesignerOutlets将在MonoTouch的更高版本中执行此操作)您必须自己为从代码创建的任何视图执行此操作
  • ViewDidLoad
  • 中创建的UIImage,UIFont等实例执行相同的操作
  • ViewDidUnload应该是ViewDidLoad
  • 的镜像
对于当前不在屏幕上的控制器,例如ViewDidUnload等堆栈中的控制器,在低内存条件下调用

UINavigationControllers

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

释放视图和图像将释放更多内存,这些内存将通过静态类的内存使用量来获得。