NSURL构造函数返回nil后如何获取错误信息?

时间:2015-12-18 14:36:07

标签: swift nsurl

let url = NSURL(string: "http://example.com")

据我所知NSURL返回nil时,其构造失败。

如何获取失败错误信息?

3 个答案:

答案 0 :(得分:4)

据我所见,网址失败的主要原因是网址字符无效。

你可以用...来解决这个问题。

<input type="text" value='example value' id="txtToGet"/>
<br>
<button type="button" onclick="addText()">Add</button>
<br>
<textarea id='idOfTheTextarea'></textarea>

如果没有看到您实际尝试使用它的字符串,很难说出问题所在。

答案 1 :(得分:3)

不幸的是,NSURL不会告诉您为什么网址创建失败。

NSURL上执行ALT + CLICK时从Xcode弹出窗口中显示:

  

处理对象创建失败
  如果传递的路径格式不正确,则NSURL类无法创建新的NSURL对象;路径必须符合RFC 2396.不成功的情况示例是包含空格字符和高位字符的字符串。如果创建NSURL对象失败,则创建方法返回nil,您必须准备好处理它。

因此如果失败,NSURL将返回nil,而不提供任何进一步的细节。通常使用可选绑定,可选链接,防护或任何其他已知技术来安全地解包选项,并遵循Fogmeister的建议并在使用前对URL字符串进行编码。

答案 2 :(得分:0)

使用 Swift 5

更新答案
let theURLString = "URL" // your url string

let validURLString = theURLString.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed)

let url = URL(string: validURLString)