Как Apple реализовала функцию BookMark в своем приложении iOS Книги? - PullRequest
0 голосов
/ 04 февраля 2020

Я создаю PDF Reader, похожий на приложение «Книги», встроенное в iOS. Мои закладки работают и обновляются, за исключением случаев, когда я выхожу из режима просмотра 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) {
      /*crashes on this line*/:  bookmarkButton.image = bookmarks.contains(index) ? #imageLiteral(resourceName: "Bookmark-P") : #imageLiteral(resourceName: "Bookmark-N")
        } else {
            print("Bookmark Error")
        }
    }

с

Unexpectedly found nil while implicitly unwrapping an Optional value:

Строка, к которой я добавляю комментарий, просто обновляет закладку до «заполненной версии», показывая пользователю, что страница является в закладки.

Закладка обновляется и работает в формате PDF. Однажды я go выходит из PDF-файла к просмотру документа, а затем go возвращается в PDF-файл, что он дает сбой. Возможно, стоит отметить, что «Ошибка закладки» печатается, когда я впервые открываю PDF.

Если я не коснусь кнопки закладки, тогда я смогу go, чтобы просмотреть документ и открыть PDF-файл столько раз, сколько захочу. Но как только я коснусь кнопки закладки, я не смогу снова открыть свой PDF-файл.

Есть предложения?

Заранее спасибо.

...