如何禁用‘Trailing closure in this context...’警告或将其设为强制检查项?
如何禁用‘Trailing closure in this context...’警告或将其设为强制检查项?
嘿,我刚好碰到过这个问题,给你整理两种场景的解决办法:
一、禁用这个警告
1. 单个代码块临时禁用
如果你只是想在某一段特定代码里关掉这个警告,可以用Swift的编译诊断指令包裹目标代码:
// swift diagnostic push // swift diagnostic ignored "-warn-trailing-closure" if let genres = item.genres?.compactMap { $0.genreName } { // 你的业务逻辑代码 } // swift diagnostic pop
这样这段代码就不会触发该警告,项目里其他地方的这类警告仍然会正常显示。
2. 全局项目禁用
如果想让整个项目都屏蔽这个警告,可以在Xcode里进行如下操作:
- 打开项目的「Build Settings」页面
- 在搜索框输入「Other Swift Flags」
- 添加
-no-warn-trailing-closure这个编译标志即可
二、将警告设为强制检查项(必须修复)
要是你想让团队必须处理这类警告(比如把它升级为错误,不修复就无法完成编译),可以试试这两种方式:
1. 通过Xcode项目设置直接修改
- 打开项目的「Build Settings」页面
- 搜索「Trailing Closure」,找到「Trailing Closure in Statement Body」这一项
- 把它的级别从「Warning」改为「Error」
之后只要出现歧义的尾随闭包写法,编译就会报错,必须改成带括号的形式才能通过。
2. 使用SwiftLint(若项目已接入代码规范工具)
在项目的.swiftlint.yml配置文件中,把trailing_closure规则的级别设为error:
rules: trailing_closure: error
这样SwiftLint进行代码检查时,会把这类歧义写法标记为错误,强制开发者修复。
另外提一句,官方其实更推荐修复后的带括号写法,这种形式能避免代码歧义,所以如果是团队项目,设置成强制检查项反而更有助于统一代码规范哦。
备注:内容来源于stack exchange,提问作者Nike Kov
相关产品推荐
相关产品推荐

