当使用 URL(string: urlString) returns nil 传递字符串的有效 url 时。怎么修?

When passing the valid url of the string with the init the URL(string: urlString) returns nil. How to fix?

当使用初始化 URL(string: urlString) returns nil 传递字符串的有效 url 时。怎么修?当我输入一个单词的值(例如莫斯科)时,一切正常,当输入两个单词的城市时,我使用 split(separator: " ") 分隔请求并使用 .joined(separator: "%20" ) 并得到城市除以 %20 和 return 零。这个问题怎么解决?

enter image description here

enter image description here

编码后使用apiKey:

let encodedKey = key.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)

你需要addingPercentEncoding查看我的扩展程序

extension String {
    var url: URL? {
        guard !isEmpty else { return nil }

        if let url = URL(string: self) {
            return url
        } else if let urlEscapedString = addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed),
                 let escapedURL = URL(string: urlEscapedString) {
            return escapedURL
        }
        return nil
    }
}