我试图理解这个函数的错误参数中星星的位置:
+ (NSData *)dataWithJSONObject:(id)obj
options:(NSJSONWritingOptions)opt
error:(NSError * _Nullable *)error;
我知道如果星星彼此相邻,这意味着我们正在引用参数的地址。我相信这是在引入可空性之前在这个函数中完成的工作(即error:(NSError **)error;
那么为什么_Nullable位于两颗星之间而不是像error:(NSError ** _Nullable)error;
这样表达呢?
答案 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
的对象引用}。