考虑下面的方法
- (void)methodWithArg:(NSString *)arg1 andArg:(NSString *)arg2 completionHandler:(void (^)(NSArray *results, NSError *error))completionHandler;
有了新的nonnull
和nullable
annotation keywords,我们可以对其进行如下丰富:
- (void)methodWithArg:(nonnull NSString *)arg1 andArg:(nullable NSString *)arg2 completionHandler:(void (^)(NSArray *results, NSError *error))completionHandler;
但我们也收到了这样的警告:
指针缺少nullability类型说明符(_nonnull或
它指的是第三个参数(块1).
documentation没有包括如何指定块参数的可空性的示例.它一字不差地陈述
您可以立即使用非下划线形式null和nonnull
我试着在没有任何运气的情况下(在任何位置)为块放置两个关键字中的一个.还try 了下划线前缀的变体(__nonnull
和__nullable
).
因此,我的问题是:如何为块参数指定可空性语义?