Swift 为什么会发生URL错误?
我正在使用iTunes搜索API,为了测试,我正在搜索“愤怒的小鸟”并打印结果。但是当我将Swift 为什么会发生URL错误?,swift,nsurl,foundation,itunes-api,Swift,Nsurl,Foundation,Itunes Api,我正在使用iTunes搜索API,为了测试,我正在搜索“愤怒的小鸟”并打印结果。但是当我将urlPath转换为NSURL时,我得到一个nil值。我该如何解决这个问题?urlPath具有链接,但在url变量中为nil。这就是确切的错误: 致命错误:在展开可选值时意外发现nil 当URL包含空格等非法字符时,NSURL返回nil。验证您的URL字符串是否正确 stringByAddingPercentEscapesUsingEncoding返回一个可选字符串,因此您得到的实际上是: https://
urlPath
转换为NSURL时,我得到一个nil
值。我该如何解决这个问题?urlPath
具有链接,但在url变量中为nil
。这就是确切的错误:
致命错误:在展开可选值时意外发现nil
当URL包含空格等非法字符时,NSURL返回nil。验证您的URL字符串是否正确
stringByAddingPercentEscapesUsingEncoding
返回一个可选字符串,因此您得到的实际上是:
https://itunes.apple.com/search?term=Optional(“愤怒+小鸟”)&媒体=软件
解决方案是安全地打开可选的:
if let escapedSearchTerm = itunesSearchTerm.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding) {
let urlPath = "https://itunes.apple.com/search?term=\(escapedSearchTerm)&media=software"
let url = NSURL(string: urlPath)
// ...
}
结果:
https://itunes.apple.com/search?term=Angry+Birds&media=software
通过在浏览器中粘贴url来检查它是否在那里工作
if let escapedSearchTerm = itunesSearchTerm.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding) {
let urlPath = "https://itunes.apple.com/search?term=\(escapedSearchTerm)&media=software"
let url = NSURL(string: urlPath)
// ...
}