ios URL主机已过时,但替换崩溃

avkwfej4  于 2022-11-19  发布在  iOS
关注(0)|答案(1)|浏览(138)

URL hostiOS 16.1macOS 13上已过时,但替代项在某些情况下会崩溃。
替换选项为host(percentEncoded:)

示例:

let url = URL(string: "lorem.com")
print(url?.host) // deprecated warning, prints nil
print(url?.host()) // crash: Thread 1: EXC_BREAKPOINT (code=1, subcode=0x18084f9d4)

虽然lorem.com不符合RFC 1808(最常见的URL形式),但请求它的主机通常会返回nil,而不是崩溃。
使用host(percentEncoded: true)host(percentEncoded: false)时的行为相同。
是否有解决方法?

relj7zay

relj7zay1#

这似乎是Foundation框架上的一个错误,我已经打开了一个关于反馈助理的错误报告。
当它得到修复时,我建议继续使用host的弃用版本,否则你会在以前工作的代码中崩溃,特别是如果你在某些情况下依赖主机返回nil。

相关问题