Объявление метода с __attribute__((nonnull(2)))

Что делает это __attribute__((nonnull(2))) значит в следующем объявлении метода?

 - (void)requestShareWithObjectId:(NSString *)object 
                       completion:(void (^)(NSString *likes, NSString *reposts))completion __attribute__((nonnull(2)));

1 ответ

Решение

Это означает, что Второй параметр не должен быть нулевым указателем.

__attribute__((nonnull))

Этот атрибут функции указывает параметры функции, которые не должны быть нулевыми указателями. Это позволяет компилятору генерировать предупреждение при обнаружении такого параметра.

Синтаксис

__attribute__((nonnull(arg-index, ...)))

Где arg-index, ... обозначает список индексов аргументов.

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

Рекомендации

  1. NSHipster -__attribute__
  2. РУКА
  3. Keil
Другие вопросы по тегам