【发布时间】:2012-01-02 20:34:54
【问题描述】:
我正在尝试使用 iOS5 和 ARC。我正在尝试制作一个简单的网页视图。我真正要做的是:
在标题中:
@interface MyWebView : UIViewController <UIWebViewDelegate> {
IBOutlet UIWebView *webView;
IBOutlet UIActivityIndicatorView *activityIndicator;
}
@property(strong, nonatomic) UIWebView *webView;
@property(strong, nonatomic) UIActivityIndicatorView *activityIndicator;
@end
在实施中:
- (void)viewDidLoad
{
[super viewDidLoad];
NSURL *url = [NSURL URLWithString:@"http://www.google.com"];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[webView loadRequest:requestObj];
}
- (void)webViewDidStartLoad:(UIWebView *)webView{
NSLog(@"webViewDidStartLoad");
[activityIndicator startAnimating];
}
- (void)webViewDidFinishLoad:(UIWebView *)webView{
NSLog(@"webViewDidFinishLoad");
[activityIndicator stopAnimating];
}
当我检查模拟器和仪器是否有泄漏时,我注意到在我在网络浏览器中加载的谷歌网站中单击时会显示小泄漏(红色条)。即使我没有点击 webview google 网站中的任何链接,我只是让页面加载,我可能会看到一个小的初始泄漏。
这段代码真的很简单,所以我不确定有什么问题。任何意见,将不胜感激!谢谢!
确认(llvm 3.0 + ARC):
【问题讨论】:
-
您是否尝试过在实际设备上进行分析?
-
为什么在 ivars 上是 IBOutlet 而不是属性?同样在 iOS 5 上,所有不在视图层次结构顶部的 IBOutlets 都应该是弱引用。例如。如果你的 webView 在 UIViewController 的视图中,它应该是你的类中的弱引用。
-
我查过了。并且也有内存泄漏。我没有使用任何
IBOutlet等。只是简单的[UIWindow addSubview:UIWebView]。
标签: iphone memory-leaks uiwebview ios5 automatic-ref-counting