Originariamente, ho qualcosa di molto semplice come segue. Una categoria personalizzata di UIAlertAction
in modo che io possa creare un'azione corretta semplicemente con [UIAlertAction okay]
;Manca un identificatore del tipo nullability sull'interfaccia funzionale
@interface UIAlertAction (Custom)
+ (UIAlertAction *)okay;
@end
@implementation UIAlertAction (Custom)
+ (UIAlertAction *)okay
{
return [UIAlertAction actionWithTitle:@"Ok"
style:UIAlertActionStyleCancel
handler:nil];
}
@end
E più tardi, decido che voglio anche uno con una curva a completa così l'interfaccia diventano questo:
@interface UIAlertAction (Custom)
+ (UIAlertAction *)okay;
+ (UIAlertAction *)okayWithHandler:(void (^ __nullable)(UIAlertAction *action))handler;
@end
E e mi metto sempre messaggio di avviso sulla linea di pugno:
puntatore manca un tipo nullability specificatore
Penso di capire l'idea di nullable (onestamente, il nome è piuttosto descrittivo). Ma quello che non capisco è il motivo per cui aggiungere una __nullable
alla seconda funzione renderà necessario avere uno specificatore nullable per il primo?
Grazie mille! Ora capisco perché inizio a ricevere tonnellate di avvertimenti e solo in una delle mie lezioni. Mi è appena capitato di copiare qualche dichiarazione di metodo da un altro progetto, che ha una dichiarazione '__nullable'. Ho appena rimosso quella dichiarazione, tutti gli avvertimenti sono spariti! –