大佬教程收集整理的这篇文章主要介绍了ios – 在iPad上显示大型PDF时泄漏UIWebView,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我的iPad应用程序需要显示一些大型PDF(约7mb和图形密集).阻力最小的路径当然是UIWebView,但我的应用程序在显示几个后崩溃.我在新项目中隔离了行为,并在其上运行了instruments.
结果如下.它们似乎表明UIWebView中发生了严重泄漏.
基本代码,在最小视图控制器中:
-(IBACtion)dopresent:(UIView *)sender { NSURL *url = [[NSBundle mainBundle] URLForresource:[NSString StringWithFormat:@"%d",[sender tag]] withExtension:@"pdf"]; UIWebView *wv = [[[UIWebView alloc] init] autorelease]; UIViewController *vc = [[[UIViewController alloc] init] autorelease]; [vc setView:wv]; UINavigationController *holder = [[[UINavigationController alloc] initWithRootViewController:vc] autorelease]; [self presentModalViewController:holder animated:YES]; [wv loadrequest:[NSURLrequest requestWithURL:url]]; UIBarButtonItem *close = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@SELEctor(doDismiss:)] autorelease]; [[vc navigationItem] setrightBarButtonItem:close]; } -(IBACtion)doDismiss:(id)sender { [self dismissModalViewControllerAnimated:YES]; }
未图示:包含此VC的主nib,其视图和连接到dopresent的五个按钮:每个标记为1 … 5;应用程序包中的1.pdf到5.pdf.运行它并且它可以像您期望的那样工作,除了它在PDF的六个左右视图之后崩溃.
在仪器(分配)下运行它产生了这个有趣的情节:
我注意到的模式是,如果我显示PDF并在不滚动文档的情况下将其关闭,它会按预期释放,泄漏最少.但是,如果我触摸它并滚动,即使是一点点,内存也不会被释放.查看后续PDF似乎没有重用任何浪费的内存,但每个都分配了更多自己的内存.在模拟器中运行并触发内存警告也不会获得此内存.
当使用量达到〜25mb时,该程序被杀死了-9’d.这对我来说似乎很低,暗示除了app内存之外还有一些其他资源被泄露.
这是在运行4.3的iPad 1上重新启动.
想法?解决方法?我的愚蠢遗漏?
以上是大佬教程为你收集整理的ios – 在iPad上显示大型PDF时泄漏UIWebView全部内容,希望文章能够帮你解决ios – 在iPad上显示大型PDF时泄漏UIWebView所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。