2011-08-12 116 views
5

假设我有一个根控制器MyViewController,它带有一个名为var1的实​​例变量。我给var1赋值,但是我没有用dealloc方法释放它。关于dealloc方法的一些问题

我的问题是应用程序退出后会发生什么?

回答

5

从dealloc的documentation ...

重要提示:请注意,当一个应用程序终止时,对象可能 无法发送,因为进程的内存中的dealloc消息 上自动清除出口更高效的根本允许操作系统清理资源,而不是调用所有内存管理方法。由于这个原因以及其他原因,您不应该在dealloc中管理稀缺资源 - 有关更多详细信息,请参阅 “内存管理编程指南”中的“对象所有权和处置”。

+0

+1仅供参考。 –

+0

所以,我可以说,如果一个类的实例总是存在于应用程序的生命周期中,那么可以不释放dealloc方法中的类的实例变量吗?因为无论如何,操作系统都会为我们做到这一点。 –

4

当应用程序退出时,内存将被回收。但是,请记住,您的应用程序不会在最新版本的iOS中退出,除非用户终止它,或者操作系统终止它以使用太多的内存。