The "nullability-completeness" warning对我来说在 Xcode 9.3(和 9.4.1)中不起作用。 但它可以在 Xcode 9.1 和 9.2 中运行。
我使用“Single View App”模板在 Xcode 9.2(或 9.1)中创建了一个新的 iOS 项目,然后将此方法添加到我的 ViewController.h 中:
- (nonnull UIView *)f:(UIView *)f g:(UIView *)g;
我在每个参数上都收到了 2 个警告,如下所示:
In file included from /Users/daniel/Projects/tests/TestNullability92/TestNullability92/ViewController.m:9:
/Users/daniel/Projects/tests/TestNullability92/TestNullability92/ViewController.h:13:31: warning: pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) [-Wnullability-completeness]
- (nonnull UIView *)f:(UIView *)f g:(UIView *)g;
^
/Users/daniel/Projects/tests/TestNullability92/TestNullability92/ViewController.h:13:31: note: insert '_Nullable' if the pointer may be null
- (nonnull UIView *)f:(UIView *)f g:(UIView *)g;
^
_Nullable
/Users/daniel/Projects/tests/TestNullability92/TestNullability92/ViewController.h:13:31: note: insert '_Nonnull' if the pointer should never be null
- (nonnull UIView *)f:(UIView *)f g:(UIView *)g;
但是如果我在 Xcode 9.3(或 9.4.1)中打开并重建该项目 - 我不会收到这些警告。
我尝试进入build设置并显式启用此标志(尽管默认情况下应启用它),但仍然一无所获:
最佳答案
解决方案非常简单(无需提交错误)。
In your Project Build Settings simply search for "Custom Compiler Flags", and add the following:
-Wno-nullability-completeness
如果您尝试显示警告,请尝试添加此标志,清理并构建,然后删除该标志(清理并再次构建..)。如果这不起作用,可能
也许删除这些警告并不是一个错误,而是有目的地隐藏这些错误消息,以努力清理项目及其错误消息。
关于ios - 自 Xcode 9.3 以来的可空性完整性警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51060850/