NSUrl returns 解包时为零

NSUrl returns nil while unwrapping

NSUrl returns 无,而 运行 此代码。

let urlString = "https://api.flickr.com/services/rest/?text=baby asian elephant&method=flickr.photos.search&format=json&nojsoncallback=1&extras=url_m&safe_search=2&api_key=ed8f0359ce87560e56cda1fe71e8ad9d"
let url = NSURL(string: urlString)!

抛出:

EXC_BAD_INSTRUCtION

知道为什么会这样。

谢谢。

urlString 中不能有空格

let urlString = "https://api.flickr.com/services/rest/?text=baby%20asian%20elephant&method=flickr.photos.search&format=json&nojsoncallback=1&extras=url_m&safe_search=2&api_key=ed8f0359ce87560e56cda1fe71e8ad9d"
let url = NSURL(string: urlString)!

问题是 urlString 中的空格。

它们需要更换。 URL 中的空格写成 %20 而不是 </code>:</p> <pre><code>let urlString = "https://api.flickr.com/services/rest/text=baby%20asian%20elephant&method=flickr.photos.search&format=json&nojsoncallback=1&extras=url_m&safe_search=2&api_key=ed8f0359ce87560e56cda1fe71e8ad9d"

我猜你自己以某种方式插入了 text 参数?!这个参数需要先转义,Zaph 已经指出了这种情况下的必要方法。

URL.

中不应有空格

URL 字符串有需要转义的字符:space 个字符。这是转义 URL:

的示例代码
let urlString = "https://api.flickr.com/services/rest/?text=baby asian elephant&method=flickr.photos.search&format=json&nojsoncallback=1&extras=url_m&safe_search=2&api_key=ed8f0359ce87560e56cda1fe71e8ad9d"

let escapedString = urlString.stringByAddingPercentEncodingWithAllowedCharacters(.URLQueryAllowedCharacterSet())

if  let escapedString = escapedString {
    let url = NSURL(string: escapedString)
    if let url = url {
        println("url: \(url)")
    }
}

输出

url: https://api.flickr.com/services/rest/?text=baby%20asian%20elephant&method=flickr.photos.search&format=json&nojsoncallback=1&extras=url_m&safe_search=2&api_key=ed8f0359ce87560e56cda1fe71e8ad9d