Frage

Ich arbeite derzeit an einem NSProxy Unterklasse, die bestimmte Nachrichten abfängt und sie niemals an Dritte weiterleitet, sondern nur verarbeitet, sodass diese Methoden nie wirklich existieren.Und hier kommt das Problem: Offensichtlich beginnt sich der Compiler über die fehlenden Methodenimplementierungen zu beschweren, und ich kann nicht herausfinden, wie ich das stoppen kann. Das Hinzufügen von Stub-Methoden zur Schnittstelle, nur um den Compiler zum Herunterfahren zu bringen, funktioniert nicht, weil die Methoden nicht funktionieren sind willkürlich geformt und ich kenne sie nicht im Voraus (um es etwas genauer zu machen, bitte ich um Das Projekt).

Im Idealfall würde ich dem Compiler gerne mitteilen, dass er überhaupt keine Methodenprüfung für diese bestimmte Klasse durchführen soll, aber da dies eher unwahrscheinlich erscheint, würde ich mich auch über eine freuen #pragma oder auf andere Weise (was nicht beinhaltet, den Compiler für jede Warnung im gesamten Projekt/in der gesamten Datei herunterzufahren!)

War es hilfreich?

Lösung

Ihre switch-Anweisungen sind nicht wirklich willkürlich, sie könnten einfach eine beliebige Länge haben.Für eine große Anzahl von Längen könnten Sie sie zum Nutzen des Compilers deklarieren (und Sie würden dann eine Fehlerprüfung erhalten, die Sie nicht hätten, wenn Sie die Warnung einfach ausgeschaltet hätten).Zum Beispiel:

typedef void (^ObjCCaseBlock)();

@interface NSObject ()
- (id)switch;
- (void)case:(NSString*)a :(ObjCCaseBlock)b;
- (void)case:(NSString*)a :(ObjCCaseBlock)b case:(NSString*)a :(ObjCCaseBlock)b;
- (void)case:(NSString*)a :(ObjCCaseBlock)b case:(NSString*)a :(ObjCCaseBlock)b case:(NSString*)a :(ObjCCaseBlock)b;
@end

Wiederholen Sie den Vorgang für so viele Ebenen, wie es wahrscheinlich ist (und Sie können Ebenen hinzufügen, falls jemals ein Problem auftritt).Es ist etwas mühsam, aber nicht schwierig.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top