2013-02-14 40 views
1

我在我的.h文件创建多个insances释放golable实例变量如何ARC模式

IBOutlet UIImageView *imageView; 
IBOutlet UIImageView *subImageView; 
IBOutlet UIImageView *arrowRight; 
IBOutlet UIImageView *arrowLeft; 
IBOutlet UIImageView *arrowDown; 

我的项目是在ARC模式

我一定要将它们设置为无dealloc()方法以释放它们?

感谢

+1

如果您的全局变量实际上是在特定视图控制器实例的每个生命周期中重置的,那么您可能正在进入一个痛苦的世界。 – 2013-02-14 05:59:43

+1

这些全局变量是实例变量吗?他们只能是一个或另一个,人们似乎对你使用的是什么感到困惑。 – Chuck 2013-02-14 06:29:13

回答

0

如果你的对象之一被释放后也不需要全球的情况下,最好的办法是设置全局指针nildealloc

- (void)dealloc { 
    gYourGlobalPointer = nil; 
} 

注意,在ARC你不能叫[super dealloc],的dealloc将被自动发送到您的超类。

+0

你可以添加国旗或提及作为重复的问题与其听到的答案相同 – 2013-03-11 09:52:41

0

您可以在viewDidUnload让他们零如下:

- (void)viewDidUnload 
{ 
    [super viewDidUnload]; 
    // Release any retained subviews of the main view. 
    self.myOutlet = nil; 
} 
0

在ARC您不必担心释放性能的实例名副其实的。编译器会为你照顾它们。

如果您想手动释放,您必须将nil指定给指向特定实例的所有强变量。