我知道我可以直接对此进行编码,但我将如何做到这一点:
let strReturn = String(strToConvert.characters.map {
$0 == " " ? "%20" : $0
})
当我这样做时,我得到"结果值在'? :'表达式有不匹配的类型' String'和'字符'"
如果我添加" %% 20"
答案 0 :(得分:1)
如果您只是为锻炼做这件事,那就没关系。对于生产代码,转义URL字符串的最佳方法是URLComponents
结构。
现在问题...问题是关闭的返回类型:"%20"
是String
,$0
是Character
。斯威夫特不知道如何推断这种类型。
将其更改为:
let strReturn = strToConvert.characters.map {
$0 == " " ? "%20" : String($0)
}.joined(separator: "")