无法访问bundle中的文件



我在获取捆绑包中文件的路径/url时遇到问题。这是我使用的代码

@IBOutlet weak var testWebView: UIWebView!
private func setText() {
if let path = Bundle.main.path(forResource: "theory", ofType: "pdf") {
    let url = NSURL(fileURLWithPath: path)
    let request = NSURLRequest(url: url as URL)
    testWebView.loadRequest(request as URLRequest)
 }
}
override func viewDidLoad() {
   super.viewDidLoad()
  // setText()
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
setText()
}

文件理论.pdf在主捆绑包中(没有子文件夹等)我尝试了这里讨论的许多方法,例如使用创建组/创建文件夹引用等进行复制 - 没有任何帮助。webView 在情节提要中设置。

如果您

的目标是显示PDF,我强烈建议您使用UIDocumentInteractionController

class ViewController: UIViewController {
    private var documentInteractionController: UIDocumentInteractionController?
    private func setText() {
        if let path = Bundle.main.path(forResource: "theory", ofType: "pdf") {
            let url = URL(fileURLWithPath: path)
            let controller = UIDocumentInteractionController(url: url)
            controller.delegate = self
            controller.presentPreview(animated: true)
            documentInteractionController = controller
        }
    }
    override func viewDidAppear(_ animated: Bool) {
         super.viewDidAppear(animated)
         setText()
    }
}

您还需要实现UIDocumentInteractionControllerDelegate

extension ViewController: UIDocumentInteractionControllerDelegate {
    func documentInteractionControllerViewControllerForPreview(_ controller: UIDocumentInteractionController) -> UIViewController {
         return self
    }
}

谢谢大家。我解决了问题。我没有将 PDF 拖放到捆绑包中,而是右键单击项目导航器并选择将文件添加到...此后,在上传的文件上再次右键单击并选择添加...。终于成功了。再次感谢。现在我将试验你的建议。

相关内容

最新更新