我在Swift 1.2中使用了这个
let urlwithPercentEscapes = myurlstring.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)
现在,这给了我一个警告,要求我使用
stringByAddingPercentEncodingWithAllowedCharacters
我需要使用 NSCharacterSet 作为参数,但是有这么多,而且我无法确定是哪个将给我与以前使用的方法相同的结果。
我要使用的示例网址如下所示
http://www.mapquestapi.com/geocoding/v1/batch?key=YOUR_KEY_HERE&callback=renderBatch&location=Pottsville,PA&location=Red Lion&location=19036&location=1090 N Charlotte St, Lancaster, PA
用于编码的URL字符集似乎包含修剪URL的集。即
URL的路径组件是紧随主机组件(如果存在)之后的组件。它在查询或片段组件开始的任何地方结束。例如,在URL http://www.example.com/index.php?key1=value1中,路径组件是/index.php。
但是我不想修剪任何方面。例如myurlstring,当我使用String时,它将失败。
myurlstring
但是,当使用以下内容时,则没有问题。它使用某种魔术对字符串进行编码,我可以获得我的URL数据。
因为它
使用给定的编码返回String的表示形式,以确定将String转换为合法URL字符串所需的转义百分比
谢谢
对于给定的URL字符串,等效于
是字符集 URLQueryAllowedCharacterSet
URLQueryAllowedCharacterSet
let urlwithPercentEscapes = myurlstring.stringByAddingPercentEncodingWithAllowedCharacters( NSCharacterSet.URLQueryAllowedCharacterSet())
斯威夫特3:
let urlwithPercentEscapes = myurlstring.addingPercentEncoding( withAllowedCharacters: .urlQueryAllowed)
它对URL字符串中问号后的所有内容进行编码。
由于该方法stringByAddingPercentEncodingWithAllowedCharacters可以返回nil,因此请使用Leo Dabus的答案中建议的可选绑定。