2016-03-17 3 views

ответ

0

«nonnull» - это в основном для объединения Objective-C и Swift. Swift будет переводить тип метода в «NSString», а не «NSString?».

+0

правой, но даже если вы не используете Swift вообще, она по-прежнему следует использовать правильно? Компилятор использует подсказки в некоторых других местах, например, для установки свойства nonill явно на nil. Но в этом случае никакого предупреждения вообще нет. Кажется странным. –

1

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

Что может быть полезно, используя 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)