我正在编写一些使用第三方控件内联打开PDF文件的Swift代码。问题是,对于一小部分(但不可忽略的)PDF文档,控件遇到了一个意外发现的nil"由于PDF文档中缺少某些元数据。显然try / catch只能在swift中用于程序员明确声明的错误 - 不过这是我尝试过的代码(警告没有抛出异常)
var document: PDFDocument
do{
// exception is happening in this constructor
try document = PDFDocument(filePath: location.path, password: nil)
}catch{
// fallback to using iOS defaults
let av = UIAlertController(title: "Error", message: "This document couldn't be opened. You will now be directed to your phone's default application for handling this file.", preferredStyle: .alert)
av.addAction(UIAlertAction(title: "OK", style: .default, handler: {(alert: UIAlertAction!) in
let docController = UIDocumentInteractionController(url: location)
...
}))
return;
}
方法我考虑过:
有没有办法随意捕捉这些错误?或者是覆盖最佳方法?
我对Swift相当新,所以这可能是我的无知,但与我使用的其他平台相比,这似乎是一个相当大的差距。
编辑:对于它的价值,第三方库叫做UXMPDFKit
谢谢,