You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何这段Swift代码未输出failed?如何构造无效URL触发该输出?

问题1:什么属于无效URL?

无效URL指不符合URL语法规范、无法被标准解析器识别的字符串,常见情况包括:

  • 包含未编码的空格
  • 存在未转义的特殊字符(如\、|、{、}等)
  • 缺少必要结构且不符合相对路径规则(比如无协议头的混乱字符组合)
  • 包含非法域名格式或错误的网络地址结构(比如格式错误的IPv6地址)
  • 带有无法正确解码的错误编码字符
问题2:如何修改urlString让代码输出failed?

要让URL(string:)返回nil从而触发failed输出,只需传入无法被解析为有效URL的字符串即可,举几个可行的例子:

  • 带未转义反斜杠的字符串:
    let urlString = "asdf\\ghj"
    
  • 带未转义竖线的字符串:
    let urlString = "http://example.com|test"
    
  • 包含控制字符的字符串:
    let urlString = "http://example.com\u{0000}"
    
  • 纯非法字符组合:
    let urlString = "{}[]|\\^"
    

注:你当前传入的带空格字符串能被解析成功,是因为URL(string:)会尝试对部分不规范字符做隐式兼容处理,但上述例子中的字符无法被解析修复,会直接返回nil。

内容的提问来源于stack exchange,提问作者Luis Ramirez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 06:45:08