Ich möchte nur Warnung (ohne Compiler-Unterdrückung) vermeiden, aber nicht einige Includes zu meiner Datei hinzufügen. Hier ist mein Code:Was für eine Warnung mit Protokoll Vorwärtsdeklaration?
@protocol MyProto;
// ...
Protocol *p = @protocol(MyProto);
Hier warnt ich habe:
@protocol is using a forward protocol declaration of MyProto [-Wat-protocol]
Keine Wahl. Sie können einen Code nicht eingeben, bevor Sie den Typ definiert haben. Dies gilt auch für Klassen. – Avi
@Avi sieht aus wie 'Protokoll * p' wird Null sein, falls das Protokoll' MyProto' in Laufzeit nicht existiert? Vielleicht ist das was Warnmeldung über? – k06a
Nein. Die Warnung bedeutet, was sie bedeutet. Sie verwenden einen Typ, bevor Sie ihn definieren. Der Compiler warnt Sie, dass er Ihre Verwendung des Protokolls nicht überprüfen kann, da er nicht weiß, was das Protokoll enthält. – Avi