Как остановить закладку от сбоя приложения PDF? - PullRequest
0 голосов
/ 04 февраля 2020

У меня есть приложение для чтения PDF-файлов, использующее PDFKit с iOS 13 Swift, в котором есть кнопка закладки, которая позволяет добавить в закладки определенную страницу. Он отлично работает для меня, пока я все еще просматриваю свой PDF, но если я добавлю в закладки хотя бы 1 страницу в моем PDF и go вернусь в свой файловый браузер, и снова выберу свой PDF, произойдет сбой приложения. Вот мой код:

private func updateBookmarkStatus() {
        if let documentURL = pdfDocument?.documentURL?.absoluteString,
            let bookmarks = UserDefaults.standard.array(forKey: documentURL) as? [Int],
            let currentPage = pdfView.currentPage,
            let index = pdfDocument?.index(for: currentPage) {
            bookmarkButton.image = bookmarks.contains(index) ? #imageLiteral(resourceName: "Bookmark-P") : #imageLiteral(resourceName: "Bookmark-N")
        }
    }

и происходит сбой при

Thread 1: Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value

Эта функция обновления вызывается при загрузке каждой отдельной страницы PDF. Однако, когда я выхожу и снова захожу в свой PDF, он вылетает, потому что я думаю, что Swift не может найти массив закладок, так как по крайней мере одна была помечена. Мое приложение вылетает только в том случае, если я отмечаю хотя бы одну закладку, затем захожу в браузер файлов и снова открываю свой PDF.

Любая помощь очень ценится.

...