我正在尝试使用PDFKit中的PDFThumbnailView来显示pdf文档的缩略图,但我无法使其工作。控制台中没有显示错误。我只是得到一个空白的viewController。以下是我的代码。请问有人可以告诉我哪里出错了吗?
我拖动了一个UIView对象并为其分配了以下类' PDFThumbnailView'。
import UIKit
import PDFKit
class pdfThumbNailViewController: UIViewController {
@IBOutlet weak var myThumbNailView: PDFThumbnailView!
override func viewDidLoad() {
super.viewDidLoad()
// create PDFView Object
// Then assign this object as the variable of thumbnailview object
let myPDFViewObject = PDFView.init()
if let path = Bundle.main.path(forResource: "paper", ofType: "pdf"){
let url = URL.init(fileURLWithPath: path)
if let pdfDocument = PDFDocument.init(url: url){
myPDFViewObject.document = pdfDocument
}
}
// Setting thumbnail size
let size = CGSize.init(width: 50, height: 50)
myThumbNailView.thumbnailSize = size
myThumbNailView.layoutMode = .vertical
myThumbNailView.pdfView = myPDFViewObject
}
}
答案 0 :(得分:2)
你得到一个空白的ViewController,因为你根本没有使用myThumbnailView
..
在viewDidLoad
中,您创建了一个缩略图视图并为其分配了数据,但您实际上从未使用过IBOutlet myThumbNailView
..因此它是空白的,并且在viewDidLoad
时取消分配本地视图结束。
TLDR:thumbNailObject != myThumbNailView
..您使用了错误的对象引用。
答案 1 :(得分:0)
是的 - 在您当前的代码中,您遇到了内存问题,这就是您最终看不到任何内容的原因:
您已在let myPDFViewObject: PDFView
内定义了viewDidLoad()
,而PDFView
只存在于该方法块中;一旦达到方法结束,您的PDFThumbnailView
就会被取消分配,而PDFView
又不再关联let myPDFViewObject: PDFView
。
您只需在viewDidLoad()
之上和之外移动PDFView
就可以解决您的问题,从而确保let myPDFViewObject = PDFView()
override func viewDidLoad() {
super.viewDidLoad()
// Then assign this object as the variable of thumbnailview object
if let path = Bundle...
能够长寿
快乐的编码!
with cte as (
SELECT R.ReportId, R.CreatedDate, RS.SpecialtyId,
ROW_NUMBER() OVER (PARTITION BY RS.SpecialtyId
ORDER BY R.CreatedDate DESC) as rn
FROM Report R
JOIN ReportSpecialty RS
ON R.ReportId = RS.ReportId
AND RS.IsPrimarySpecialty = 1
WHERE RS.SpecialtyId IN ( .... ids ... )
)
SELECT TOP 10 *
FROM cte
ORDER BY rn, CreatedDate DESC