繁体   English   中英

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

[英]Is It necessary to release the memory of View using IBOutlets?

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

在.h

IBOutlet UIWebView *webview;

在.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的内存,我可以在哪个地方发布它......谢谢......

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

在哪个地方我可以释放它?

您可以在dealloc方法中释放此对象,也可以在viewDidUnload中将nil设置为这些对象

-(void)dealloc
{
   [self.webview release];
   [super dealloc];
}

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

资源编程指南

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

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

如果您有@property (nonatomic, retain)IBOutlet UIWebView *webview; 并在.m file合成它然后你必须显式释放你的Web视图的内存

您应该参考内存管理策略

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM