предупреждение о полноте, начиная с Xcode 9.3 - PullRequest
0 голосов
/ 27 июня 2018

Предупреждение "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

Ответы [ 2 ]

0 голосов
/ 02 мая 2019

Это исправлено в Xcode 10.2, оно снова выдает правильные предупреждения.

0 голосов
/ 30 января 2019

Решение действительно простое (не нужно регистрировать ошибку).


В ваших настройках Project Project просто найдите «Custom Compiler» Флаги "и добавьте следующее:

-Wno-nullability-completeness

enter image description here


Если вы пытаетесь показать предупреждения, попробуйте добавить этот флаг, очистить и построить, а затем удалить флаг (очистить и построить снова ...). Если это не сработает, может

Возможно, удаление этих предупреждений является не столько ошибкой , сколько целенаправленным сокрытием этих ошибочных сообщений в попытке очистить проекты и сообщения об ошибках.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...