Ios 如何阻止书签破坏PDF应用程序?
我有一个PDF阅读器应用程序,使用PDFKit和iOS 13 Swift,它有一个书签按钮,可以为特定页面添加书签。当我还在看我的PDF时,它对我来说很好,但是如果我在我的PDF中添加至少一页书签,然后返回到我的文件浏览器,再次选择我的PDF,应用程序就会崩溃。 这是我的密码:Ios 如何阻止书签破坏PDF应用程序?,ios,swift,xcode,pdf,pdfkit,Ios,Swift,Xcode,Pdf,Pdfkit,我有一个PDF阅读器应用程序,使用PDFKit和iOS 13 Swift,它有一个书签按钮,可以为特定页面添加书签。当我还在看我的PDF时,它对我来说很好,但是如果我在我的PDF中添加至少一页书签,然后返回到我的文件浏览器,再次选择我的PDF,应用程序就会崩溃。 这是我的密码: private func updateBookmarkStatus() { if let documentURL = pdfDocument?.documentURL?.absoluteString,
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时,我的应用程序才会崩溃
非常感谢您的帮助。try:let currentPage=pdfView?.currentPage,@MohitKumar我应该把它放在哪里?在您的if语句中…第三个let语句现在可以用了吗?@MohitKumar不,我不能把try语句放在那里。“let”声明的整个序列都在“if”下。。。