Ich versuche, meine App mit Xcode5 zu aktualisieren, stieß aber auf eine Reihe von "semantischen Problemen" in einer Third-Party-Bibliothek (MagicalRecord). Der schnellste Weg zur ‚fix‘ könnte dies unter Verwendung der:Sollte ich Xcode 5 'Semantisches Problem: nicht deklarierter Selektor' beheben?
#pragma GCC diagnostic ignored "-Wundeclared-selector"
(aus: How to get rid of the 'undeclared selector' warning)
Compiler-Direktive, aber mein Bauchgefühl sagt, dass dies nicht der richtige Weg, dies zu tun. Ein kleines Codebeispiel mit dem obigen Fehler:
+ (NSEntityDescription *) MR_entityDescriptionInContext:(NSManagedObjectContext *)context {
if ([self respondsToSelector:@selector(entityInManagedObjectContext:)])
{
NSEntityDescription *entity = [self performSelector:@selector(entityInManagedObjectContext:) withObject:context];
return entity;
}
else
{
NSString *entityName = [self MR_entityName];
return [NSEntityDescription entityForName:entityName inManagedObjectContext:context];
}
}
wo die entityInManagedObjectContext:
Methode nicht überall definiert ist.
Haben Sie Vorschläge, wie Sie diese Fehler am besten beheben können? Vielen Dank im Voraus ?!
Ich stimme der obigen Methode zu, da das Deaktivieren von Warnungen nicht meine bevorzugte Methode zum' Reparieren 'ist. Mit der entsprechenden Header-Datei und den Klassen-/Protokollnamen kann ich diese dokumentierte "Schnellkorrektur" einfacher finden. Also denke ich, dass ich Abhis Methode übernehmen werde. –
Das klingt gut, es sei denn, Sie können die Klasse, in der der Selektor sein sollte, nicht wirklich einbeziehen/importieren (Zyklusabhängigkeitsprobleme, ..) – Gyfis