4

__attribute__((nonnull(2)))这在以下方法声明中是 什么意思?

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

1 回答 1

1

它表示第二个参数不应该是空指针。

__attribute__((nonnull))

此函数属性指定不应为空指针的函数参数。这使编译器能够在遇到此类参数时生成警告。

句法

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

其中 arg-index, ... 表示参数索引列表。

如果未指定参数索引列表,则所有指针参数都标记为非空。

参考

  1. NSHipster -__attribute__
  2. 手臂
  3. 凯尔
于 2014-04-25T18:48:20.687 回答