С кодом:Предупреждение при использовании nonnull?
- (nonnull NSString *)testing {
return nil;
}
не Должен ли я получить предупреждение компилятора? Я не знаю никаких предупреждений, которые, похоже, кажутся бесполезными?
С кодом:Предупреждение при использовании nonnull?
- (nonnull NSString *)testing {
return nil;
}
не Должен ли я получить предупреждение компилятора? Я не знаю никаких предупреждений, которые, похоже, кажутся бесполезными?
«nonnull» - это в основном для объединения Objective-C и Swift. Swift будет переводить тип метода в «NSString», а не «NSString?».
Ну, на мой взгляд, это должно вызвать предупреждение, но я не мог понять, чтобы получить его.
Что может быть полезно, используя Product > Analyze
для запуска статического анализатора CLANG. Это должно дать следующую подсказку:
Null возвращается из метода, который, как ожидается, вернуть ненулевое значение
Другое дело, стоит упомянуть, это установка CLANG_WARN_NULLABLE_TO_NONNULL_CONVERSION
, который называется Incorrect Uses of Nullable values
в Apple LLVM 7.1 - Warnings - All languages
раздел «Настройки сборки».
Этот параметр не будет выдавать предупреждение о неправильных возвращаемых значениях, но при использовании метода с неправильными параметрами (например, nil для нештатных параметров) отображается предупреждение.
Этот ответ относится к Xcode версии 7.3.1 (7D1014)
правой, но даже если вы не используете Swift вообще, она по-прежнему следует использовать правильно? Компилятор использует подсказки в некоторых других местах, например, для установки свойства nonill явно на nil. Но в этом случае никакого предупреждения вообще нет. Кажется странным. –