从 String 到 NSURL 的转换不断返回 nil

Posted

技术标签:

【中文标题】从 String 到 NSURL 的转换不断返回 nil【英文标题】:Conversion From String to NSURL constantly returns nil 【发布时间】:2015-09-22 22:05:10 【问题描述】:

我正在尝试获取已添加到应用程序主包中的音频文件的路径。当我将路径打印为字符串时,它会正常打印。

但是,当我在转换后尝试打印相同的 NSURL 时,返回 nil

let audioPath: String = NSBundle.mainBundle().pathForResource("Test", ofType: "mp3")!
    print(audioPath)

    let audioPathURL: NSURL? = NSURL(string: audioPath)
    print(audioPathURL)

【问题讨论】:

由于我的代表率低,无法添加图像,控制台 O/P 读取为:/Users/Supratik/Library/Developer/CoreSimulator/Devices/DEABF725-E10A-4090-87EA-15A2E0E87541/ data/Containers/Bundle/Application/19BDBDB2-AA46-402E-BE72-0BE47034D15A/Playing With Audio.app/Test.mp3 nil 您使用了错误的 NSURL 初始化程序。使用需要文件路径而不是字符串的路径。 【参考方案1】:

您需要使用 filePath 特定的初始化程序

let audioPathURL: NSURL? = NSURL(fileURLWithPath: audioPath)

【讨论】:

【参考方案2】:

文件系统中的 URL 必须使用 NSURL(fileURLWithPath:) 而不是 NSURL(string:) 方法初始化。

或者你使用NSBundle的基于URL的方法

【讨论】:

以上是关于从 String 到 NSURL 的转换不断返回 nil的主要内容,如果未能解决你的问题,请参考以下文章

我无法解析从 NSURL 会话返回的 JSON。我究竟做错了啥?

NSString 到 NSurl

将 NSUrl 转换为 PHAsset iOS 8

如何在 Swift 中将 NSURL 转换为字符串

从字符串转换 NSURL

将文件路径从 NSString 转换为 NSURL