Iphone UIWebView内存问题
我正在UIWebView上播放youtube视频,它显示为modalViewController子视图(翻转转换)。一切正常,即使UIWebView被发布,在多次选择这个modalViewController之后,我仍然收到内存警告 我已经在ViewDidLoad中以编程方式添加了UIWebView。在Iphone UIWebView内存问题,iphone,memory-management,uiwebview,Iphone,Memory Management,Uiwebview,我正在UIWebView上播放youtube视频,它显示为modalViewController子视图(翻转转换)。一切正常,即使UIWebView被发布,在多次选择这个modalViewController之后,我仍然收到内存警告 我已经在ViewDidLoad中以编程方式添加了UIWebView。在ViewDidEnglish中,我检查[UIWebView重新计数]如果大于1,请执行以下步骤: [[NSURLCache sharedURLCache] removeAllCachedRespo
ViewDidEnglish
中,我检查[UIWebView重新计数]
如果大于1,请执行以下步骤:
[[NSURLCache sharedURLCache] removeAllCachedResponses];
[self.webView removeFromSuperview];
self.webView.delegate = nil;
self.webView = nil;
NSLog(@"[self.webView retainCount] %d", [self.webView retainCount]);
我在xCode 3.2.5和iOS 4.2上运行我的代码
感谢您的帮助。我认为您处理内存管理问题的方式不对。如果您知道自己在做什么,那么检查重新计数是一种有效的调试技术。然而,它不是一个内存管理工具。在您的特定情况下,如果显示UIWebView,则其保留计数始终大于1。superview将保留它,从而使“如果”无效 如果webView属性定义良好(即noatomic,retain),则语句:
self.webView = nil;
应该发布webView。一个常见错误是使用以下命令初始化属性:
self.webView = [[UIWebView alloc] init];
如果webView被定义为“保留”,则很可能会导致泄漏。正确的方法是
self.webView = [[[UIWebView alloc] init] autorelease];
如果无法在内存不足的情况下多次显示控制器,则会出现内存泄漏。使用仪器(特别是泄漏)查找被正确释放的物体
小心保持固定和释放平衡,并检查是否有泄漏 我认为您以错误的方式处理内存管理问题。如果您知道自己在做什么,那么检查重新计数是一种有效的调试技术。然而,它不是一个内存管理工具。在您的特定情况下,如果显示UIWebView,则其保留计数始终大于1。superview将保留它,从而使“如果”无效 如果webView属性定义良好(即noatomic,retain),则语句:
self.webView = nil;
应该发布webView。一个常见错误是使用以下命令初始化属性:
self.webView = [[UIWebView alloc] init];
如果webView被定义为“保留”,则很可能会导致泄漏。正确的方法是
self.webView = [[[UIWebView alloc] init] autorelease];
如果无法在内存不足的情况下多次显示控制器,则会出现内存泄漏。使用仪器(特别是泄漏)查找被正确释放的物体
小心保持固定和释放平衡,并检查是否有泄漏 您的问题将与此相关:
向下滚动到我的答案,以扩展已接受的答案-我有这个问题好几天了,现在已经解决了 您的问题将与此相关:
向下滚动到我的答案,以扩展已接受的答案-我有这个问题好几天了,现在已经解决了 谢谢你的回复。实际上,我确实初始化了webview,如下所示:self.webview=[[[UIWebView alloc]initWithFrame:CGRectZero]autorelease];通过仪器,我无法检测到任何泄漏。但是控件到达了didReceiveMemoryWarning方法,并出现1级警告,应用程序崩溃。@TechFanior你找到解决方案了吗?如果你发布解决方案,它将非常有用!!!同样的警告在mycase am中重复并崩溃,使用四个Web视图加载图像感谢您的响应。实际上,我确实初始化了webview,如下所示:self.webview=[[[UIWebView alloc]initWithFrame:CGRectZero]autorelease];通过仪器,我无法检测到任何泄漏。但是控件到达了didReceiveMemoryWarning方法,并出现1级警告,应用程序崩溃。@TechFanior你找到解决方案了吗?如果你发布解决方案,它将非常有用!!!同样的警告在mycase am中重复并崩溃,使用四个Web视图加载图像