Swift PDFDocument возвращает ноль для файлов и URL
Я хочу показать файл PDF с помощью PDFView в приложении для iOS. Я добавил файл с именем merlin.pdf в каталог моего проекта. Я также проверил, что merlin.pdf включен в Ресурсы Copy Bundle в фазах сборки. Но все же, PDFDocument возвращает ноль. Это код, который я использую:
import UIKit
import PDFKit
class ReaderViewController: UIViewController {
// MARK: - Properties
@IBOutlet weak var pdfView: PDFView!
override func viewDidLoad() {
super.viewDidLoad()
let url = Bundle.main.url(forResource: "merlin", withExtension: "pdf")
let pdfDocument = PDFDocument(url: url!)
pdfView.document = pdfDocument
pdfView.displayMode = PDFDisplayMode.singlePageContinuous
pdfView.autoScales = true
// Do any additional setup after loading the view.
}
}
Неустранимая ошибка брошена в pdfView.document = pdfDocument
,
Затем я попробовал онлайн ссылку на файл PDF. Во время отладки я вижу, что let pdfDocument = PDFDocument(url: url!)
загружает файл из интернета. Но опять же, это не так, как в прошлый раз. Это код:
import UIKit
import PDFKit
class ReaderViewController: UIViewController {
// MARK: - Properties
@IBOutlet weak var pdfView: PDFView!
override func viewDidLoad() {
super.viewDidLoad()
let url = URL(string: "https://arxiv.org/pdf/1803.10760.pdf")
let pdfDocument = PDFDocument(url: url!)
pdfView.document = pdfDocument
pdfView.displayMode = PDFDisplayMode.singlePageContinuous
pdfView.autoScales = true
// Do any additional setup after loading the view.
}
}
Что я должен делать?
2 ответа
Решение
Ну, как ни странно, проблема была с weak
ключевое слово в @IBOutlet weak var pdfView: PDFView!
, Удаление weak
заставил код работать. Спасибо @klinki за упоминание о выходе.