星星周围_Nullable

时间:2018-04-15 22:58:08

标签: ios objective-c

我试图理解这个函数的错误参数中星星的位置:

+ (NSData *)dataWithJSONObject:(id)obj options:(NSJSONWritingOptions)opt error:(NSError * _Nullable *)error;

我知道如果星星彼此相邻,这意味着我们正在引用参数的地址。我相信这是在引入可空性之前在这个函数中完成的工作(即error:(NSError **)error;

那么为什么_Nullable位于两颗星之间而不是像error:(NSError ** _Nullable)error;这样表达呢?

1 个答案:

答案 0 :(得分:0)

通常,该属性会修改其左侧的类型。

  • NSError* _Nullable error是一个对象引用,可以设置为nil
  • NSError* _Nonnull error是一个对象引用,不能是nil
  • NSError* _Nullable * _Nullable outError是一个指针,可以是NULL,指向可以nil的对象引用。
  • NSError* _Nullable * _Nonnull outError是一个指针,不能NULL,指向可以nil的对象引用。
  • NSError* _Nonnull * _Nonnull outError是一个指针,不得NULL,指向一定不能nil的对象引用}。