Aşağıdaki yöntemi düşünün
- (void)methodWithArg:(NSString *)arg1 andArg:(NSString *)arg2 completionHandler:(void (^)(NSArray *results, NSError *error))completionHandler;
Yeni nonnull
ve nullable
ek açıklamalı anahtar kelimelerle onu aşağıdaki gibi zenginleştirebiliriz:
- (void)methodWithArg:(nonnull NSString *)arg1 andArg:(nullable NSString *)arg2 completionHandler:(void (^)(NSArray *results, NSError *error))completionHandler;
ancak şu uyarıyı da alıyoruz:
İşaretçide boş değer atanabilirlik türü belirticisi eksik (__nonnull veya __nullable)
Üçüncü parametreye (birinci blok) atıfta bulunur.
Dokümantasyon blok parametreleri nullability nasıl belirleneceği örneklerle kapsamaz. Aynen ifade eder
Tip basit bir nesne veya blok işaretçisi olduğu sürece, altı çizilmemiş formları açık bir parantezden hemen sonra null yapılabilir ve boş olmayan biçimler kullanabilirsiniz.
Blok için iki anahtar kelimeden birini (herhangi bir konumda) şanssız olarak koymayı denedim. Ayrıca alt çizgi önekli varyantları ( __nonnull
ve __nullable
) denedi .
Bu nedenle sorum şu: Blok parametreleri için boş değer atanabilirlik anlamını nasıl belirleyebilirim?
NSError **
? Derleyiciyi mutlu edemiyorum.