Я работал над добавлением аннотации с нулевым значением в часть файла заголовка, и я хотел, чтобы блок принимал ненулевые значения, но почти каждый метод впоследствии предупреждал о том, что мне нужно добавить значение nullability аннотаций.Предупреждения о недопустимости аннотации после NS_ASSUME_NONNULL_END
Пример кода для этого ниже:
NS_ASSUME_NONNULL_BEGIN
- (void)testMethodWithParameter:(NSString *)par otherParameter:(NSString *)otherPar;
NS_ASSUME_NONNULL_END
- (void)methodThatShouldntNeedAnnotationWithText:(NSString *)txt;
//Warning: Pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified)
Могу ли я понимать эти макросы неправильно? Я думал, что это будет содержать ту часть, которая, как говорили, будет проверена в блоке BEGIN/END, но все, что было снаружи, все равно будет _Null_unspecified
Это работает так, как планировалось, или есть что-то, что я должен сделать, чтобы сделать эту работу Кстати, я думал?
Я не знаю, если это намеренно или нет, но я тоже это заметил. Как только вы получите * любую аннотацию нулевой видимости в файле интерфейса, вы должны определить значение nulloid * везде * в этом файле. –
По крайней мере, из моего впечатления о том, как это работает, похоже, что 'NS_ASSUME_NONNULL_END' ничего не делает в интерфейсе. Примерный код блога Apple Swift показывает 'BEGIN' перед' @ interface' и 'END' после' @ end' (для интерфейса). Возможно, он не предназначен для использования внутри интерфейса только для его части. – NickCE