我想打开一个位于iOS设备上“文件”应用中的pdf文件。我已经设置了所有内容,因此当用户选择使用我的应用程序打开pdf文件时,将调用以下函数:
-( BOOL )application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
该文件的路径如下:
file:///private/var/mobile/Library/Mobile%20Documents/com~apple~CloudDocs/test.pdf
但是,当我使用以下代码以快速代码读取文件时,它将返回nil
let pdfDoc = CGPDFDocument( pdfURL )
任何想法
谢谢Reza
答案 0 :(得分:0)
URL带有安全范围标记的书签,因此需要将其包装在url访问代码中:
if pdfURL.startAccessingSecurityScopedResource() {
let pdfDoc = CGPDFDocument( pdfURL )
// additional executions
pdfURL.stopAccessingSecurityScopedResource()
}
答案 1 :(得分:0)
SWIFT 5 解决方案
如果您正在寻找更专业的方法来从 pdf URL 获取页面绘图和准确的文档,这可能是更好的方法
extension URL {
func getPDFDocument() -> CGPDFDocument? {
if self.startAccessingSecurityScopedResource() {
guard let document = CGPDFDocument(self as CFURL) else { return nil }
self.stopAccessingSecurityScopedResource()
return document
}
return nil
}
}