【发布时间】:2019-11-26 13:13:33
【问题描述】:
当我打开 PDF 并频繁关闭它会加载内存时,我遇到了一个问题。我检查了 Profiler 并发现
PDFKit -[PDFTilePool _createTileSurfaceForRequest:]
根本没有处理。
这是我的代码:
func configure(with url: URL, delegate: PDFCollectionViewCellDelegate?) {
self.configure(baseDelegate: delegate)
self.delegate = delegate
pdfView.document = PDFDocument(url: url)
pdfView.maxScaleFactor = 6
pdfView.minScaleFactor = pdfView.scaleFactorForSizeToFit
resetZoomAndScrollToFirstPage()
}
【问题讨论】:
-
如果您展示您如何加载/使用 PDFView 的代码会有所帮助
-
函数的第 2 行发生了什么?您在 configure(baseDelegate) 内部调用 self.configure(with..) ,然后设置委托?您是否在 self.configure(baseDelegate) 中设置了另一个委托?
-
这并没有显示您如何加载/使用 PDFView,而只是显示您如何配置它。更令人担忧的是,您似乎在函数的第一行中有一个无限循环,因为它只是调用自身作为参数传入。我真的很惊讶它不仅仅是活锁和崩溃。
-
@flanker,它只是一个识别集合视图单元格上的点击的代表团
-
@RuslanPitula 我的错误 - 误读了方法签名,试图在我的手机上查看它。它根本没有自称:-)。如果您展示了如何创建和加载视图以及创建/使用委托的位置,它仍然有助于确定问题,因为这更有可能导致任何内存泄漏。