URL编码swift IOS

URL编码swift IOS,ios,swift,url,encode,swift-extensions,Ios,Swift,Url,Encode,Swift Extensions,我使用下面的代码来编码我的字符串url let originalString = "test/test" let escapedString = originalString.addingPercentEncoding(withAllowedCharacters: . urlQueryAllowed) print(escapedString!) 我正在寻找Swift扩展来编码url,这样我就不必每次都写代码了。如何创建扩展来编码url我认为您可以这样做: extension String {

我使用下面的代码来编码我的字符串url

let originalString = "test/test"
let escapedString = originalString.addingPercentEncoding(withAllowedCharacters: . urlQueryAllowed)
print(escapedString!)

我正在寻找Swift扩展来编码url,这样我就不必每次都写代码了。如何创建扩展来编码url

我认为您可以这样做:

extension String {
    var encoded: String? {
        return self.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed)
    }
}
把它叫做:

let encodedUrl = "http://...".encoded

如果要创建扩展,只需添加

extension YourViewController {
    func stringEncode(encodedString: String) {
        let escapedString = 
        encodedString.addingPercentEncoding(with(withAllowedCharacters: .urlHostAllowed)
     print (escapedString!)
   }
}
然后在任何你想使用的地方调用这个函数。然后将字符串传递给函数的encodedString部分。比如,如果您要在按下按钮时使用它对文本字段中的内容进行编码:

@IBOutlet weak var textField: UITextField!

@IBAction func buttonPressed (_ sender: Any) {
    stringEncode(encodedString: textField.text)
}

然后按下按钮,它将执行您想要的功能。我自己仍在学习Swift,但我想我会尝试回答-让我知道这是否有效

不要使用字符串URL。使用URL组件。问题已解决。无法正常工作在%2test2%2Fretailer%2F320%2Fss%20_Point-6685.jpg中获得了类似于此的url https%3A%2F%2Ftximages.apk。这是因为:和/不应出现在url主机中请参阅。您应该只对需要编码的部分进行编码。我没有基本url,这些url是动态的,来自服务器。我正在使用它们加载图像,因此必须对整个url进行编码,而不是像https%3A%2F%2Ftximages.apk.in%2test2%2Fretailer%2F320%2Fss%20_Point-6685.jpg这样的url