如何使用 SwiftUI DocumentGroup 读取大文件而不制作临时副本?
Posted
技术标签:
【中文标题】如何使用 SwiftUI DocumentGroup 读取大文件而不制作临时副本?【英文标题】:How to read large files using SwiftUI DocumentGroup without making a temporary copy? 【发布时间】:2021-05-23 12:31:20 【问题描述】:我制作了一个 SwiftUI DocumentApp,它可以读取大型媒体文件,但不需要编写它们。在我的文档中,我只想存储文件的 URL,以便我可以使用例如加载它。 AV 音频文件。如果不创建文件的临时副本,我无法弄清楚如何做到这一点,就像作者所做的here一样,因为有no way to the file URL from the fileWrapper
我尝试使用 configuration.file.regularFileContents (Data) 创建一个管道,但到目前为止我没有成功读取该管道。
init(configuration: ReadConfiguration) throws
let tempURL = makeTemporaryFileURL()
FileManager.default.createFile(atPath: tempURL.path, contents: configuration.file.regularFileContents, attributes: nil)
audioFileUrl = tempURL
【问题讨论】:
【参考方案1】:可以通过文档配置获取fileURL
,如
@main
struct MyApp: App
var body: some Scene
DocumentGroup(viewing: MyDocument.self) fileConfig in
// here fileConfig has `fileURL` of opened document, so
MyViewer(content: fileConfig.document, url: fileConfig.fileURL)
【讨论】:
以上是关于如何使用 SwiftUI DocumentGroup 读取大文件而不制作临时副本?的主要内容,如果未能解决你的问题,请参考以下文章