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 за упоминание о выходе.

Может быть, вы пропустили установку класса представления в конструкторе интерфейсов для вашего выхода pdfView?

Потому что ваш код в порядке и работает для меня.

Другие вопросы по тегам