首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用QuickLook预览文件

无法使用QuickLook预览文件
EN

Stack Overflow用户
提问于 2021-08-24 13:27:00
回答 1查看 337关注 0票数 0

我使用这个简单的工具在我的应用程序中预览不同的文件,但是没有一个是成功预览的。

第一次尝试预览任何文件时,它会打开带有message Unsupported file format的预览控制器,而其他任何时候它只显示文件名和word data(见图像)。

以下是实现(注意打印语句):

代码语言:javascript
复制
extension FileShareVC: QLPreviewControllerDataSource, QLPreviewControllerDelegate {
    func numberOfPreviewItems(in controller: QLPreviewController) -> Int {
        filesList.count
    }
    
    func previewController(_ controller: QLPreviewController, previewItemAt index: Int) -> QLPreviewItem {
        
        let url = NSURL(fileURLWithPath: filesList[index].filePath ?? "", isDirectory: false)
        print(filesList[index].filePath!)
        //prints file:///var/mobile/Containers/Data/Application/AB608864-C682-47BB-8396-2D456430879E/Documents/F9RIB62HBUAW.jpeg
        print("url: \(url)")
        //prints file:/var/mobile/Containers/Data/Application/AB608864-C682-47BB-8396-2D456430879E/Documents/F9RIB62HBUAW.jpeg -- file:///
        return url
    }
}

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        tableView.deselectRow(at: indexPath, animated: true)
                  
        let quickLookViewController = QLPreviewController()
        quickLookViewController.dataSource = self
        quickLookViewController.delegate = self
        quickLookViewController.currentPreviewItemIndex = indexPath.row
        present(quickLookViewController, animated: true)
    }

我不知道为什么我的url在文件路径上附加-- file:///,也许这会导致问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-24 21:50:22

问题是您使用了错误的初始化程序。您正在将一个absoluteString传递给期望路径的初始化器(您的字符串包含方案file://)。顺便说一句,称filePath为absoluteString是有误导性的。

代码语言:javascript
复制
guard let url = URL(string: filesList[index].filePath ?? "") else {
    return // an alternate URL or a just create a fatalError
}

还要注意的是,你的应用程序是沙箱和它的位置将改变在每次发射。如果您需要持久化该信息,您应该只保存它的名称和目录,并在需要时重新组合您的URL。

编辑更新:

请注意,不应该将文件直接放置到库文件夹中。文件系统基础

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68908482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档