Нет предупреждения при использовании nonnull?

С таким кодом:

- (nonnull NSString *)testing {
    return nil;
}

Разве я не должен получить предупреждение компилятора? Я ничего не предупреждаю, что, кажется, делает все вещи обнуляемости бесполезными?

2 ответа

Ну, по моему мнению, это должно вызвать предупреждение, но я так и не смог его получить.

Что может быть полезным, хотя, использует Product > Analyze запустить CLANG Static Analyzer. Это должно дать следующую подсказку:

Null возвращается из метода, который должен возвращать ненулевое значение

Еще одна вещь, которую стоит упомянуть, это настройка CLANG_WARN_NULLABLE_TO_NONNULL_CONVERSION который назван Incorrect Uses of Nullable values в Apple LLVM 7.1 - Warnings - All languages раздел настроек сборки.

Этот параметр не выдаст предупреждение о неправильных возвращаемых значениях, но он показывает предупреждение при использовании метода с неверными параметрами (например, ноль для ненулевых параметров).

Этот ответ относится к Xcode версии 7.3.1 (7D1014)

"nonnull" в основном объединяет Objective-C и Swift. Swift переведет тип метода в "NSString", а не "NSString?".

Другие вопросы по тегам