ran*_*dom 1 iphone memory-management uiwebview
我在UIWebView上播放youtube视频,它显示为modalViewController子视图(翻转过渡).一切正常,即使UIWebView发布,我仍然会在重复选择这个modalViewController后收到内存警告.
我在ViewDidLoad中以编程方式添加了我的UIWebView.viewDidDisappear我检查内部[UIWebView retainCount],如果大于1,请执行以下步骤:
[[NSURLCache sharedURLCache] removeAllCachedResponses];
[self.webView removeFromSuperview];
self.webView.delegate = nil;
self.webView = nil;
NSLog(@"[self.webView retainCount] %d", [self.webView retainCount]);
Run Code Online (Sandbox Code Playgroud)
我在xCode 3.2.5,iOS 4.2上运行我的代码.
感谢所有你的帮助.
我认为你正在以错误的方式解决内存管理问题.如果您知道自己在做什么,检查retainCount是一种有效的调试技术.但是,它不是一种内存管理工具.在您的特定情况下,如果正在显示UIWebView,它将始终具有保留计数> 1.超级视图将保留它,从而使"if"无用.
如果webView属性定义良好(即noatomic,retain)语句:
self.webView = nil;
Run Code Online (Sandbox Code Playgroud)
应该发布webView.常见的错误是使用以下内容初始化属性:
self.webView = [[UIWebView alloc] init];
Run Code Online (Sandbox Code Playgroud)
如果将webView定义为"保留",则可能会引入泄漏.正确的方法是
self.webView = [[[UIWebView alloc] init] autorelease];
Run Code Online (Sandbox Code Playgroud)
如果在没有内存不足的情况下无法多次显示控制器,则会出现内存泄漏.使用仪器(特别是泄漏)来找到正确释放的物体.这是一个很好的教程.
小心保持保持和释放平衡并检查泄漏.
| 归档时间: |
|
| 查看次数: |
7080 次 |
| 最近记录: |