У меня есть приложение для чтения 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.
Любая помощь очень ценится.