Нет предупреждения при использовании 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?".