【问题标题】:How to convert this var string to URL in Swift如何在 Swift 中将此 var 字符串转换为 URL
【发布时间】:2014-08-16 02:57:00
【问题描述】:

我需要 url 文件路径是 URL(旧版本 Swift 中的 NSURL)。我有这个:

let paths = NSSearchPathForDirectoriesInDomains(
        .documentDirectory, .userDomainMask, true)

// NSString *documentsDirectory = [paths objectAtIndex:0];
let documentsDirectory = paths[0] as String

var filePath:String? = nil
var fileNamePostfix = 0
repeat {
    filePath =
    "\(documentsDirectory)/\(dateTimePrefix)-\(fileNamePostfix).mp4"
    fileNamePostfix += 1
} while (FileManager.default.fileExists(atPath: filePath))

我需要将其转换为 URL 以便在 self.fileOutput.startRecording(to: <#outputFileURL: URL?#>, recordingDelegate: <#AVCaptureFileOutputRecordingDelegate?#>) 方法中使用。

我试过filePath as? URL(),但它不正确。

【问题讨论】:

    标签: ios swift nsurl


    【解决方案1】:

    你需要做的:

    let fileUrl = URL(string: filePath)
    

    let fileUrl = URL(fileURLWithPath: filePath)
    

    取决于您的需求。见URL docs

    在 Swift 3 之前,URL 被称为 NSURL。

    【讨论】:

    • Swift 4:第一个给出 nil,第二个适用于“/dir/file.ext”之类的路径。谢谢!
    • 为什么会这样?有人知道吗?
    【解决方案2】:

    在 swift 4 中使用 URL 转换为 url

    let fileUrl = URL.init(fileURLWithPath: filePath)
    

    let fileUrl = URL(fileURLWithPath: filePath)
    

    【讨论】:

      【解决方案3】:

      在 swift 3 中使用:

      let url = URL(string: "Whatever url you have(eg: https://google.com)")

      【讨论】:

      • 谢谢,它对我有用,之前我使用的是 URL.init(fileURLWithPath: ) ,它产生了错误的 url。我认为那是一些文件路径。
      【解决方案4】:

      在 Swift3 中:
      let fileUrl = Foundation.URL(string: filePath)

      【讨论】:

      • 如果路径包含字符串,这将返回nil!请改用let fileUrl = URL(fileURLWithPath: filePath)
      • @natev 如果 fileURL 字符串包含方案 "file://" 以及如果它是使用 absoluteString 而不是 path 属性获得的。
      【解决方案5】:

      要将String中的文件路径转换为NSURL,请观察以下代码

      var filePathUrl = NSURL.fileURLWithPath(path)
      

      【讨论】:

      • 请尽量简单解释一下。
      猜你喜欢
      • 1970-01-01
      • 2022-10-23
      • 2014-09-23
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      • 2018-06-08
      • 1970-01-01
      • 2019-02-17
      相关资源
      最近更新 更多