用__attribute声明一个方法__((nonnull(2)))

时间:2014-04-25 18:46:10

标签: objective-c annotations declaration method-declaration

__attribute__((nonnull(2)))在以下方法声明中的含义是什么?

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

1 个答案:

答案 0 :(得分:1)

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

  

__attribute__((nonnull))

     

此函数属性指定不是的函数参数   应该是空指针。这使编译器能够生成   遇到这样的参数时会发出警告。

     

<强>语法

     

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

     

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

     

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

参考

  1. NSHipster - __attribute__
  2. ARM
  3. Keil