我应该在程序中什么时候释放所有分配的内存?
因为我只有一个viewDidLoad方法来处理我的业务。我应该保持dealloc为空,在viewDidUnload中进行清理吗?
我应该在程序中什么时候释放所有分配的内存?
因为我只有一个viewDidLoad方法来处理我的业务。我应该保持dealloc为空,在viewDidUnload中进行清理吗?
'dealloc'用于在对象准备释放时使用(即当对象的保留计数变为0时)。而viewDidUnload是在视图卸载时调用的,但它可能不会立即被释放,因为UIViewController的引用仍然被其他对象存储。
我的个人偏好是,对于由'init'创建的对象,它们将由'dealloc'释放,对于由'viewDidLoad'创建的对象,它们将由'viewDidUnload'释放。
-viewDidUnload
的文档所述:viewDidLoad
方法或应用程序的其他部分中轻松重新创建的对象使用此方法。您不应该使用此方法来释放用户数据或任何无法轻松重新创建的信息。viewDidLoad
方法中。放弃对任何对象(包括那些在outlet中的对象)的所有权的首选方法是使用相应的访问器方法将对象的值设置为nil。但是,如果您没有给定对象的访问器方法,则可能必须显式释放该对象。-viewDidUnload
会在-dealloc
中调用,您不应该依赖它。