[英]Do I need to release IBOutlets when using loadNibNamed: method?
[英]Is It necessary to release the memory of View using IBOutlets?
我是iphone应用程序开发的新手,在这里我有一个疑问在解决我的应用程序的内存问题,我使用IB拖放UIWebview,之后我创建了IBOutlet到这个webview ..有必要释放这个webiview的内存后使用......任何人都可以帮助我......
IBOutlet UIWebView *webview;
- (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.