ios - 当使用 init 传递字符串的有效 url 时,URL(string: urlString) 返回 nil。怎么修?
问题描述
当使用 init 传递字符串的有效 url 时,URL(string: urlString) 返回 nil。怎么修?当我从一个词(例如,莫斯科)输入一个值时,一切正常,当输入一个来自两个词的城市时,我使用 split(separator: " ") 分隔请求并使用 .joined(separator: "%20" ) 并将城市除以 %20 并返回 nil。如何解决这个问题?
解决方案
你需要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
}
}
推荐阅读
- java - 如何检索文本文件中的某些字符串并根据字符串中的元素进行排序?
- spring-integration - 有没有办法将 spring 集成 tcp udp 适配器与 tibco rv 一起使用?
- vba - 从功能区运行宏时出错
- ajax - responseText 包含额外的空白字符(换行符,换行符),如何在jsp中防止和删除它们?
- java - 多类型od消息的JMS侦听器?
- python - 如何使用 Numpy 绘制矢量场?
- python - Django 一个现有的连接被远程主机强行关闭
- javascript - 由于getOwnerComponent setModel,页面跳转到顶部屏幕
- symfony - 将参数设置为 int 数组,用于 dbal 查询生成器中的 where in 语句抛出数组到字符串转换异常
- gcc - STM32 DFU 上传失败和 GCC 优化