我的 PDF 位置在本地应用程序文件中的位置是啥? - 斯威夫特用户界面
Posted
技术标签:
【中文标题】我的 PDF 位置在本地应用程序文件中的位置是啥? - 斯威夫特用户界面【英文标题】:What will my PDF location be in local app files? - SwiftUI我的 PDF 位置在本地应用程序文件中的位置是什么? - 斯威夫特用户界面 【发布时间】:2020-12-04 08:44:42 【问题描述】:我已经获得了一个函数,可以将视图从另一个堆栈溢出帖子 - https://***.com/a/60753437/12969913 转换为 PDF。有了这个,我正在使用另一个视图来尝试在一个新视图中显示 PDF,以便用户不可避免地按照他们的意愿共享和查看。
如何让我的 PDF 显示,我不知道 URL 是如何工作的以及我必须在新视图中添加什么。
网址是在exportToPDF()
函数中创建的:
let documentDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
let outputFileURL = documentDirectory.appendingPathComponent("SwiftUI.pdf")
然后我从另一个堆栈溢出帖子中获取了一些代码来显示 PDF 并实现了 - https://***.com/a/61480852/12969913,但为了使其工作,我必须输入我的文件 URL,我该怎么做,以及文件 URL 是什么?
我的PDFKitView()
代码 - 显示新的 .pdf:
struct PDFKitView: View
var url: URL
var body: some View
PDFKitRepresentedView(url)
struct PDFKitRepresentedView: UIViewRepresentable
let url: URL
init(_ url: URL)
self.url = url
func makeUIView(context: UIViewRepresentableContext<PDFKitRepresentedView>) -> PDFKitRepresentedView.UIViewType
let pdfView = PDFView()
pdfView.document = PDFDocument(url: self.url)
pdfView.autoScales = true
return pdfView
func updateUIView(_ uiView: UIView, context: UIViewRepresentableContext<PDFKitRepresentedView>)
// Update the view.
然后我会使用:
HStack
PDFKitView(url: ????????)
Text("Hello World")
【问题讨论】:
【参考方案1】:如果您将 PDF 文件直接拖放到您的 Xcode 项目中,您可以通过以下方式检索 URL:
guard let path = Bundle.main.path(forResource: "SwiftUI", ofType: "pdf") else return
let url = URL(fileURLWithPath: path)
【讨论】:
我无法让守卫工作,而是使用与设置位置相同的变量来查找我的 pdf 我已经使用 guard 来安全地解开可选值,如果你愿意,你可以跳过它。请注意强制展开 (!
) 路径值。
Bundle.main.path
帮助您找到 PDF 文件了吗?
最后没用那个,我用let documentDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first! let fileURL = documentDirectory.appendingPathComponent("SwiftUI.pdf")
以上是关于我的 PDF 位置在本地应用程序文件中的位置是啥? - 斯威夫特用户界面的主要内容,如果未能解决你的问题,请参考以下文章