【问题标题】:Swift - pathForResource inDirectory parameterSwift - pathForResource inDirectory 参数
【发布时间】:2014-11-21 13:06:11
【问题描述】:

我正在制作一个非常简单的应用程序,它使用 UIWebView 来显示可以放大、平移等的 pdf 地图。

但是,在为 pdf 创建目标 url 时,pathForResource 调用无法正常工作。这是我的代码:

var targetURL : NSURL = NSBundle.mainBundle().pathForResource(filename, ofType: type)

我在“文件名”之前的括号中出现错误,即Missing argument for parameter 'inDirectory' in call。我尝试为此添加一个参数:

var targetURL : NSURL = NSBundle.mainBundle().pathForResource(filename, ofType: type, inDirectory: "Map")

我不知道要为inDirectory 放什么,因为我不知道目录是什么 - 我将文件添加到我的项目中,它与我的 ViewController.swift 文件位于同一文件夹中。无论如何,这并不重要,因为我在同一个地方收到以下错误,Extra argument 'inDirectory in call

我该怎么办?

【问题讨论】:

    标签: ios xcode swift uiwebview nsurl


    【解决方案1】:

    pathForResource() 不返回 NSURL 对象,而是返回 String?。相应地声明您的变量,它应该可以工作。

    var targetURL : String? = NSBundle.mainBundle().pathForResource(filename, ofType: type)
    

    或者,当然,如果您愿意 - 只需改用 URLForResource()

    var targetURL : NSURL? = NSBundle.mainBundle().URLForResource(filename, withExtension: type)
    

    【讨论】:

    • 您是否知道如何处理 targetURL 返回为 nil 的情况?有没有办法为此添加回调/关闭,所以我只是等到返回一些东西?
    • 我不太清楚如何回答这个问题,但this post 很好地解释了可选类型。也许它会回答你的问题。
    【解决方案2】:

    我遇到了同样的问题。就我而言,这是因为我的变量(在您的情况下为 type)需要被解包。添加 bang ! 使错误消失并执行代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-09
      • 1970-01-01
      • 2015-02-25
      • 1970-01-01
      • 2011-04-26
      • 2012-03-09
      • 1970-01-01
      相关资源
      最近更新 更多