Ios 如何在QLViewController中管理内存

Ios 如何在QLViewController中管理内存,ios,xamarin.ios,xamarin,quicklook,qlpreviewcontroller,Ios,Xamarin.ios,Xamarin,Quicklook,Qlpreviewcontroller,我们目前正在使用QLPreviewController加载PDF集合。收集的大小可以是16、95甚至1600+个PDF。由于PreviewController的数据源包含多个项目,我们现在可以在预览模式中向左或向右滑动,并加载列表中的下一个PDF 此功能引入了一个问题,即集合中不同位置的控制器内出现灰色屏幕。可能发生在第3项、第50项或第161项;这个错误非常不一致,很难重现 当灰色屏幕出现在模式中时,向左或向右滑动的功能不再可用。在取消模式并从表源中重新选择PDF后,它将无问题加载。这一经验

我们目前正在使用QLPreviewController加载PDF集合。收集的大小可以是16、95甚至1600+个PDF。由于PreviewController的数据源包含多个项目,我们现在可以在预览模式中向左或向右滑动,并加载列表中的下一个PDF

此功能引入了一个问题,即集合中不同位置的控制器内出现灰色屏幕。可能发生在第3项、第50项或第161项;这个错误非常不一致,很难重现

当灰色屏幕出现在模式中时,向左或向右滑动的功能不再可用。在取消模式并从表源中重新选择PDF后,它将无问题加载。这一经验强化了我们的理论,即此灰色屏幕是由于内存管理问题而出现的


无论数据源的大小如何,管理QLPreviewController中内存的正确方法是什么?是否有代码示例演示如何使用数据源中包含多个项目的QLVeviewController?

发生这种情况时,应用程序的内存使用情况如何?它比你开始浏览PDF时高吗?如果这是由于内存管理问题造成的,您将得到一个低内存诊断报告,并同步到您的Mac;它将显示哪些进程正在使用内存。如果QuickLook使用了大量内存,那可能是苹果的错;如果你的应用程序是可用的,那么你应该检查你的内存使用情况。@ThomasDeniau quicklook绝对是消耗内存最多的进程。它会不断增长,只有在崩溃后才会收缩,也就是出现灰色屏幕时。我们在DidReceiveMemoryWarning方法中向垃圾收集添加了代码,但是,它并没有减少内存。您知道减少QuickLook进程内存使用的正确代码吗?您不知道。QuickLook是完全由Apple管理的代码。你应该提交一份错误报告,并附上你的低内存日志(注意你试图显示的PDF的数量和大小)。@ThomasDeniau我们今天下午早些时候向苹果提交了一份错误报告。我会向你汇报他们的答案。谢谢您的帮助。@ShawnRoser您找到解决方案了吗?