NSUrl在运行此代码时返回nil。
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
为什么会发生这种情况的任何想法。
谢谢。
答案 0 :(得分:2)
问题是urlString
中的空格。
他们需要更换。网址中的空格被写为%20
而不是:
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已经指出了该案例的必要方法。
答案 1 :(得分:2)
网址中不应有空格。
答案 2 :(得分:1)
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)!
答案 3 :(得分:1)
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