【发布时间】:2022-11-30 23:06:11
【问题描述】:
我正在形成一个 url 以在请求旁边传递,作为回报我的应用程序崩溃,因为它意外地发现 nil,当 debuggin -> 我确实有 url,所以我的问题是,我如何避免在这里使用强制解包?
当我使用 guard 或 if let 时,我应该返回什么?网址?它将再次成为可选的。
制造
var url: URL? 对我也不好。
public var url: URL {
var components = URLComponents()
components.scheme = scheme
components.host = ipAddress
components.path = endpoint
components.port = port
components.queryItems = urlQueryItems
return components.url!.removingPercentEncoding!
}
【问题讨论】:
-
没有上下文,没有人能够告诉您应该为无效的
URL使用什么默认值。这个网址代表什么?输入是动态的吗?您可以使用有意义的默认 URL 吗?如果没有,您需要停止使用无法创建的URL的上下文。 -
removingPercentEncoding似乎适得其反,因为URLComponents在必要时动态添加百分比编码。
标签: swift url swift-optionals