Iphone 在viewDidUnload中发布是否有任何区别?
我是iPhone开发新手 我正在我的应用程序中使用一些按钮和标签。我将在dealloc功能中释放所有这些按钮和标签。Iphone 在viewDidUnload中发布是否有任何区别?,iphone,xcode4,viewdidunload,Iphone,Xcode4,Viewdidunload,我是iPhone开发新手 我正在我的应用程序中使用一些按钮和标签。我将在dealloc功能中释放所有这些按钮和标签。 我还将在viewDidUnload中发布它们 - (void)viewDidUnload { [super viewDidUnload]; self.ans1 = nil; self.ans2 = nil; self.ans3 = nil; self.ans4 = nil; self.button = nil; self.button2 = nil; self.button3 =
我还将在viewDidUnload中发布它们
- (void)viewDidUnload
{
[super viewDidUnload];
self.ans1 = nil;
self.ans2 = nil;
self.ans3 = nil;
self.ans4 = nil;
self.button = nil;
self.button2 = nil;
self.button3 = nil;
self.button4 = nil;
}
我只想知道它对内存管理有好处,或者对内存管理没有影响。为什么我们要用这个
提前谢谢 这有利于内存管理。如果在卸载控制器时释放与视图控制器关联的对象,则可以有效地减少应用程序的内存占用。即使在不使用对象的情况下保留它们,也会使应用程序更容易出现内存警告&最终终止 因此,在
ViewDidLoad
中进行分配并在ViewDidUnload
中发布是一种很好的做法
嗯,
Akshay调用viewDidUnload时卸载的不是视图控制器,而是它的视图视图控制器在解除分配之前保持活动状态。 在viewDidUnload中,必须释放作为视图一部分的对象以及可以在viewDidLoad中重新创建并且将在viewDidLoad中重新创建的所有对象(因为当视图控制器需要重新创建其视图时,将再次调用viewDidLoad)。这包括您的所有门店。您还必须将这些变量设置为nil,以避免过度使用它们
因为在dealloc中,您应该释放视图控制器保留的所有对象,包括viewDidUnload中包含的内容。viewDidUnload用于释放创建视图时可能制作的任何内容-这包括viewDidLoad中的内容,但也包括从xib文件内部创建的和IBOutlet属性。在viewDidUnload中,这些都应该被释放并设置为nil
- (void)viewDidUnload
{
[super viewDidUnload];
self.ans1 = nil;
self.ans2 = nil;
self.ans3 = nil;
self.ans4 = nil;
self.button = nil;
self.button2 = nil;
self.button3 = nil;
self.button4 = nil;
}
其他任何东西都应该在dealloc中发布
其思想是,如果调用viewDidUnload以释放一些内存,则可以完全从viewDidLoad方法重新创建视图
也看这个问题,
因此,如果我使用UIImageView、NSInteger、NSArray和UIScrollView,那么我必须在ViewDiUnload中将它们设为零??一般情况下,您可以在dealloc方法中完成这一切,正如您在大多数应用程序中看到的那样。但是关于这个问题,你可以在viewDidUnload中释放iamgeView、scrollview,然后设置为零。谢谢!!但是我可以在ViewDidUnload和dealloc函数中释放这些对象吗??或者它会导致任何内存泄漏??在viewDidUnload中,如果您释放任何变量并将其设置为“nil”,然后在dealloc中再次释放,则“什么也不会发生”……但如果您释放任何变量并“未设置为nil”,然后在dealloc中再次释放,则“应用程序将崩溃”。