Предупреждение "100% * обнуляемости" * не работает в Xcode 9.3 (и 9.4.1) для меня.
Это работает, хотя в Xcode 9.1 и 9.2.
Я создал новый проект iOS в Xcode 9.2 (или 9.1) с шаблоном «Single View App», затем добавил этот метод в мой 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) - я не получу эти предупреждения.
Я попытался перейти к настройкам сборки и явно включить этот флаг (хотя он должен быть включен по умолчанию), но все равно ничего не получил:
![enter image description here](https://i.stack.imgur.com/oGkUq.png)