HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 在iPad上显示大型PDF时泄漏UIWebView大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这是一些奇怪的行为,我希望有人可以确认是一个已知的bug,或建议一个解决方法.

我的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上重新启动.

想法?解决方法?我的愚蠢遗漏?

解决方法

好吧,Apple终于在错误报告上回复了我,他们认识到这个错误,并声称它已经在最新的ios 5.x版本中修复了.走着瞧.

大佬总结

以上是大佬教程为你收集整理的ios – 在iPad上显示大型PDF时泄漏UIWebView全部内容,希望文章能够帮你解决ios – 在iPad上显示大型PDF时泄漏UIWebView所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。