是否有必要使用IBOutlets释放View的内存?

时间:2012-03-20 06:39:56

标签: iphone ipad uiwebview

我是iphone应用程序开发的新手,在这里我有一个疑问在解决我的应用程序的内存问题,我使用IB拖放UIWebview,之后我创建了IBOutlet到这个webview ..有必要释放内存这个webiview在使用后......任何人都可以帮助我...

in .h

IBOutlet UIWebView *webview;

in .m

- (void)viewDidLoad
{


webview.backgroundColor=[UIColor whiteColor];
NSURL *targetURL = [NSURL fileURLWithPath:[self request]];
NSURLRequest *request = [NSURLRequest requestWithURL:targetURL];
[webview loadRequest:request];
webview.opaque=YES;
webview.scalesPageToFit=YES;

[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
}

如果有必要释放使用webview的内存,我可以在哪个地方发布它... 谢谢......

3 个答案:

答案 0 :(得分:1)

如果您未启用ARC,则答案为YES,这是释放IBOutlets

所必需的

我可以在哪个地方发布它?

您可以使用dealloc方法释放此对象,也可以将nil设置为viewDidUnload

中的这些对象
-(void)dealloc
{
   [self.webview release];
   [super dealloc];
}

-(void)viewDidUnload
{
   [super viewDidUnload];
   self.webview = nil;
}

答案 1 :(得分:1)

来自Resource Programming Guide

  

nib文件中的对象创建时保留计数为1,然后自动释放。在重建对象层次结构时,UIKit使用setValue:forKey:重新建立对象之间的连接,它使用可用的setter方法,或者如果没有setter方法可用,则默认保留对象。

并非可用的setter方法通常是保留的方法。因此,如果您不使用ARC,则需要发布IBOutlets。一个合适的发布地点是dealloc方法。

答案 2 :(得分:0)

如果您有@property (nonatomic, retain)IBOutlet UIWebView *webview;并在.m file中进行综合,那么您必须明确释放网络视图的内存

您应该参考Memory Management Policy