我正在尝试开发一个非常简单的浏览器,使其成为iPad应用程序的一部分。该浏览器将有选项卡。所有选项卡都基于.xib文件,其中UIWebView
填充几乎所有.xib帧。 我将它们全部存储在NSMutableArray
之内,称为tabsArray
。如何“释放”ARC上的UIWebView
所以,这里是我如何添加一个新的选项卡数组: 声明:
.H
@property (nonatomic,strong) NSMutableArray *tabsArray;
@property (nonatomic,strong) UIDetailWebController *pagina;
.M
self.pagina = [[UIDetailWebController alloc] initWithNibName:@"UIDetailWebController" bundle:nil];
[tabsArray insertObject:pagina atIndex:currentViewTag+1];
我怎么显示它在屏幕上:
[self.view addSubview:[[tabsArray objectAtIndex:currentViewTag+1] view]];
最后,这里是我如何努力,当用户关闭选项卡(具有特定指数),以“释放”的UIWebView:
[[[tabsArray objectAtIndex:index] view] removeFromSuperview];
[[tabsArray objectAtIndex:index] setWebView:nil];
[[tabsArray objectAtIndex:index] setView:nil];
[tabsArray removeObjectAtIndex:index];
我的问题是:看起来,做这个,我只是穿上” t释放它。内存消耗保持不变,如果我正在播放YouTube视频,则会继续播放音频。 我在编程方面很新颖,并且用iOS 5开始iOS开发,所以我可能会放一些与内存管理有关的基本细节。
SOLUTION:
好吧,我发现什么固定的WebView是PullToRefreshView的实现(https://github.com/chpwn/PullToRefreshView)。当我把它设置为零时;一切正常!
是的,它是self.pagina – JulianoRossi 2012-03-18 20:21:41
原始代码已经self.pagina,我只是在格式化问题时输入了错误。抱歉。 – JulianoRossi 2012-03-18 20:23:51
你确定'[tabsArray objectAtIndex:index]'中的'index'是否具有正确的值?你是否确定你移除视图的代码实际上是被调用的? – sch 2012-03-18 20:35:15