2017-10-16 137 views
0

我知道我可以只用urlencode,但我将如何做到这一点:如何逃出%符号斯威夫特字符串

let strReturn = String(strToConvert.characters.map { 
      $0 == " " ? "%20" : $0 
     }) 

我这样做,我得到的“结果值时,‘:’表达了不匹配的类型“字符串”和“字””

相同的,如果我添加‘%% 20’

+1

你在这个方向走太深之前,它是什么,你要完成?转义字符串使其成为有效的URL? –

+0

是的,它比其他任何东西都更适合我自己的运动。 – PruitIgoe

回答

1

这是确定的,如果你只是做这个练习。对于产品代码,转义URL字符串的最佳方法是在URLComponents结构中。

现在到你的问题......问题是你的关闭的返回类型:"%20"String,$0Character。 Swift不知道如何推断类型。

它改成这样:

let strReturn = strToConvert.characters.map { 
    $0 == " " ? "%20" : String($0) 
}.joined(separator: "") 
+0

啊,谢谢,我靠近了自己,没有接触到加入的部分。只是要清楚,会加入(分隔符:“”)总会产生一个字符串? – PruitIgoe

+1

是的,这是[文档](https://developer.apple.com/documentation/swift/array/1688227-加入) –

+0

传递一个空字符串,因为分隔符是多余的。只需使用'.joined()' –