繁体   English   中英

无法访问捆绑包中的文件

[英]Cannot access a file in a 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()
}

文件theory.pdf位于主要文件包中(没有子文件夹等),我在这里尝试了很多方法,例如使用“创建组/创建文件夹引用”进行复制等。没有任何帮助。 webView是在StoryBoard中设置的。

如果您的目标是显示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拖放到捆绑软件中,而是在Project Navigator上单击鼠标右键,然后选择“将文件添加到...”。此后,再次右键单击上载的文件并选择“添加...”。 再次感谢。 现在,我将尝试您的建议。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM