加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

有没有办法检测Swift项目中的强制解包?

发布时间:2020-12-14 04:55:57 所属栏目:百科 来源:网络整理
导读:有没有办法(通过编译器标志或脚本)检测 Swift项目中的强制解包? 我正在考虑这样的事情: let b = a as! Blet c = a!a!.method() 没有触发var a:A的误报!例如. 解决方法 正如评论中所指出的,可以制作正则表达式搜索以捕获postfix的大部分用法! (如果你小
有没有办法(通过编译器标志或脚本)检测 Swift项目中的强制解包?

我正在考虑这样的事情:

let b = a as! B
let c = a!
a!.method()

没有触发var a:A的误报!例如.

解决方法

正如评论中所指出的,可以制作正则表达式搜索以捕获postfix的大部分用法! (如果你小心,你应该能够忽略冒号冒号的大多数用法,这样你就不会从IUO类型的声明中得到噪音.)

虽然这和它一样好,并且它是不完整的 – 例如,每次调用返回IUO类型的API并在不检查可选项的情况下访问其结果时,您可能会执行强制解包而不显式地执行任何操作你的代码中的刘海.

任何试图警告unchecked unwraps的工具都需要对Swift的类型系统,语法和类型推理规则有相当深入的了解.而且真正唯一可以拥有这些知识(并且正确使用)的地方就在编译器中.所以你可能最好离开filing a feature request to Apple或使用open source project.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读