对于有效的URL,NSURL返回nil
我有一个有效的Google地图url,如果您在浏览器中运行,则会显示地图图片。 但是,当我把它放在我的Swift代码中并尝试从String创建NSURL时,它返回nil
let urlString = "https://maps.googleapis.com/maps/api/staticmap?maptype=hybrid¢er=37.33233141,-122.0312186&path=color:0xff0000|weight:10|37.33233141,-122.0312186|21.422570,%2039.826190&markers=color:blue%7Clabel:S%7C37.33233141,-122.0312186&markers=color:blue%7Clabel:S%7C21.422570,39.826190&zoom=1&size=1080x1920" let url = NSURL(string: urlString)
目前,这个回报为零,我不知道为什么。 难道我做错了什么?
它应该工作:这就是http://www.url-encode-decode.com的原因
let url = NSURL(string: urlString.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!)
由于上面的API被弃用,替代方法是
let url = NSURL(string: urlString.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())!)
查看Apple文档 :
此方法要求URLString仅包含正确形成的URL中允许的字符。 所有其他字符必须正确转义百分比。 使用UTF-8编码解释任何百分比转义字符。
可能在你的字符串中有一些不正确的东西,你需要在将它传递给NSURL
之前对其进行编码,你可以通过stringByAddingPercentEncodingWithAllowedCharacters
来做到这stringByAddingPercentEncodingWithAllowedCharacters
:
if let encodedString = urlString.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet() { url = NSURL(string: urlString) }
- NSPredicate和NSInvalidArgumentException中的SUBQUERY
- 在代码块中设置UILabel文本
- iOS应用程序URLscheme列表
- 在Swift中将Int更改为CGFloat以返回heightForRowAtIndexPath tableview函数
- iPad的详细设置页面,如popupviewController
- 收到错误:Error Domain = com.facebook.sdk.core Code = 8“(null)”
- 升级到Xcode 7后,UIKit冻结的应用程序
- 如何使用AFJSONRequestOperation返回一个响应对象
- 从阴影视图创buildUIImage,同时保留alpha?