XCode项目添加并删除Swift模块后出现指针空性类型说明符缺失警告
导致空性类型说明符警告出现的项目设置变更
出现这个警告的核心原因是:添加Swift模块时,Xcode会自动开启Objective-C的空性完整性检查,而删除Swift模块后这个设置不会自动恢复。关键触发设置如下:
- CLANG_WARN_NULLABILITY_COMPLETENESS(对应Build Settings里的「Nullability completeness」选项)
纯Objective-C项目默认是关闭状态,添加Swift混编时会被自动设为YES,强制要求所有指针类型必须标注_Nonnull/_Nullable/_Null_unspecified。删除Swift模块后该设置不会自动转回NO,因此会触发大量警告。
检查和修改方法:
- 打开项目的Build Settings面板
- 在搜索框输入「Nullability completeness」或者直接搜索
CLANG_WARN_NULLABILITY_COMPLETENESS - 将该选项的值改为
NO,即可恢复到之前的警告状态
另外可以顺带检查是否有残留的Swift相关设置(比如SWIFT_VERSION),但这不是触发警告的直接原因,核心还是上述的空性完整性检查开关。
内容的提问来源于stack exchange,提问作者raeldor
相关产品推荐
相关产品推荐

