我会对能够在“viewDidUnload”中提供有关Apple的建议(在核心数据教程中找到)的更多信息的任何人感兴趣。例如:
代码:
// The implementation of viewDidUnload should relinquish ownership
// of anything created in viewDidLoad that can be recreated.
- (void)viewDidUnload {
self.eventsArray = nil;
self.locationManager = nil;
self.addButton = nil;
}
- (void)dealloc {
[managedObjectContext release];
[eventsArray release];
[locationManager release];
[addButton release];
[super dealloc];
}
答案 0 :(得分:5)
将属性设置为nil
也会释放它们(假设setter方法释放旧值)。
此外,将属性设置为nil
意味着之后可能最终被发送给他们的任何邮件都会被nil
吞没并被忽略。在它们被简单释放的情况下,对象可能会被释放并在内存中被覆盖,但是它们仍然可以向它们发送消息(现在被发送到内存中覆盖它们的任何内容),可能导致崩溃,异常或其他出乎意料的行为。
答案 1 :(得分:0)
当我们的内存不足时,将调用viewDidUnload方法。在内存不足的情况下,xib将从内存中释放以释放应用程序的内存。但是如果我们仍然在我们的应用程序中保留nib对象,这将不够有效。因此,当我们在viewDidUnload中将我们的nib对象设置为nil时,我们正在帮助释放更多内存。