Was ist der Grund für die Warnung "Zeiger fehlt ein NULL-Typ-Spezifizierer"?

7
%Vor%

:

Dies ist eine Methodendefinition in meiner Klasse. Es verursacht eine Warnung. Was ist die Ursache für ähnliche Warnungen und wie können diese behoben werden?

Ich gebe ein UIColor-Objekt zurück, während sich diese Frage auf Blöcke bezieht, die in Kommentaren angegeben sind.

Also, es ist hilfreich.

    
Sam Shaikh 24.02.2016, 11:22
quelle

2 Antworten

13
  

NS_ASSUME_NONNULL_BEGIN / END:

     

Das Annotieren eines beliebigen Zeigers in einer Objective-C-Headerdatei verursacht das   Der Compiler erwartet Annotationen für die gesamte Datei   Kaskade von Warnungen. Vorausgesetzt, dass die meisten Anmerkungen nicht null sind, a   Ein neues Makro kann helfen, den Prozess der Kommentierung zu optimieren   Klassen. Markieren Sie einfach den Anfang und das Ende eines Abschnitts Ihrer Kopfzeile   Markieren Sie mit NS_ASSUME_NONNULL_BEGIN und ..._ END die Ausnahmen.

Also, Sie haben es einfach getan.

%Vor%

Dies ist in

definiert
  

"NSObjCRuntime.h"

     

definiere NS_ASSUME_NONNULL_BEGIN _Pragma ("clang assume_nonnull begin")

     

definiere NS_ASSUME_NONNULL_END _Pragma ("clang assume_nonnull end")

Danke

Glückliche Kodierung.

    
Veer Suthar 24.02.2016, 11:45
quelle
7

Sie haben diese Warnung erhalten, wenn Sie irgendwo in der Datei _Nonnull , _Nullable , _Null_unspecified , __nullable , __nonnull , nullable oder nonnull verwendet haben. Könnte auch passieren, wenn der Spezifizierer durch ein Makro hinzugefügt wurde.

Um die Warnung zu beheben:

  • Sie können alle Vorkommen von NULL-Werten entfernen (nicht empfohlen)
  • Sie können davon ausgehen, dass alle Parameter und zurückgegebenen Werte _Nonnull mit NS_ASSUME_NONNULL_BEGIN und NS_ASSUME_NONNULL_END (empfohlen)
  • sind
Cœur 24.02.2016 12:12
quelle

Tags und Links