如何在 Swift 中将此 var 字符串转换为 URL
Posted
技术标签:
【中文标题】如何在 Swift 中将此 var 字符串转换为 URL【英文标题】:How to convert this var string to URL in Swift 【发布时间】: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()
,但它不正确。
【问题讨论】:
【参考方案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)
【讨论】:
请尽量简单解释一下。以上是关于如何在 Swift 中将此 var 字符串转换为 URL的主要内容,如果未能解决你的问题,请参考以下文章
如何在swift中将字符索引从layoutManager转换为String scale