我是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的内存,我可以在哪个地方发布它... 谢谢......
答案 0 :(得分:1)
如果您未启用ARC,则答案为YES,这是释放IBOutlets
所必需的我可以在哪个地方发布它?
您可以使用dealloc方法释放此对象,也可以将nil
设置为viewDidUnload
-(void)dealloc
{
[self.webview release];
[super dealloc];
}
-(void)viewDidUnload
{
[super viewDidUnload];
self.webview = nil;
}
答案 1 :(得分:1)
nib文件中的对象创建时保留计数为1,然后自动释放。在重建对象层次结构时,UIKit使用setValue:forKey:重新建立对象之间的连接,它使用可用的setter方法,或者如果没有setter方法可用,则默认保留对象。
并非可用的setter方法通常是保留的方法。因此,如果您不使用ARC,则需要发布IBOutlets。一个合适的发布地点是dealloc
方法。
答案 2 :(得分:0)
如果您有@property (nonatomic, retain)IBOutlet UIWebView *webview;
并在.m file
中进行综合,那么您必须明确释放网络视图的内存