2010-07-29 36 views
1

嗯,这已被窃听了我相当长一段时间所以现在我会问当应uiviewcontrollers被宣布为属性

时候应该uiviewcontrollers声明为属性?我注意到在许多示例中,在uinavigation控制器上被推送和弹出的uiview控制器是而不是,声明为属性。

我把这个向前,现在我的代码中使用的每个uiviewcontroller都没有声明为一个属性(ofc内存处理仔细),甚至我的主视图控制器内的appdelegate。然而,由于工具正在报告泄漏,我试图将其作为属性声明......结果是,即使泄漏仍在某处,应用程序的内存占用量已减半。

所以,现在我想知道...我的方法是完全错误的,所有的uiviewcontrollers应该声明为合适的?将uiviewcontroller声明为属性还是有特别的理由?

感谢

回答

0

视图控制器的看法会占用大量的内存,和iPhone不具备大量的内存不遗余力在这个问题上的任何提示。也许你需要控制器的某些部分,但是我不会保留一个控制器,除非它在被解雇后绝对需要保留。

+0

是的,但是什么时候他们应该被宣布为财产,什么时候没有? – koda 2010-09-27 02:00:18

0

如果您需要从您推送到的视图控制器再次访问它,您只想保留对UIViewController的引用。在任何其他情况下,你并不是真的想把它保存在内存中,而是考虑“延迟加载”所有的视图控制器(可能是你之前做的事情)并立即释放它们(UINavigationController持有对它的保留引用,所以你的应用在屏幕上不会崩溃/释放它)。

仪器说漏了什么代码?请发布。

+0

工具在appdelegate('[uiwindow addSubview:mainViewController.view];'')开始报告警告权,但是这是模拟器,现在我可以在设备上测试它不打印任何东西。 我所指的代码更像是来自以下文件:http://code.google.com/p/hedgewars/source/browse/project_files/HedgewarsMobile/Classes/MainMenuViewController.m 这两个视图控制器需要是实例变量,因为它们在SwitchView中使用,但它们不是属性。他们应该是吗? – koda 2010-07-31 12:43:05

相关问题