Ich habe eine NSManagedObject-Unterklasse namens EventEntry, die automatisch von Xcode generiert wird und versuche, nicht zu berühren (falls ich das Modell ändere und neu generieren möchte). Also füge ich jede hinzugefügte Funktionalität in eine Kategorie namens EventEntry + Extended ein.performSelector für eine Kategorieklassenmethode
Ein solches bisschen Funktionalität ist eine Klassenmethode namens eventEntriesByUser. Ich habe diese Klassenmethode abonniert, um regelmäßig aufgerufen zu werden, und benutze performSelector, um sie aufzurufen.
EventEntry + Extended.h
@interface EventEntry (Extended)
+ (void)eventEntriesByUser;
@end
EventEntry + Extended.m
@implementation EventEntry (Extended)
+ (void)eventEntriesByUser
{
trace(@"%s", __PRETTY_FUNCTION__);
}
@end
Allerdings erhalte ich einen Absturz, wenn ich versuche, dies zu tun.
[EventEntry performSelector:@selector(eventEntriesByUser)];
Fehler ...
+[EventEntry eventEntriesByUser]: unrecognized selector sent to class 0xbda08
Wenn ich diese Methode in EventEntry bewegen funktioniert es wie erwartet. Ich habe auch versucht, EventEntry + Extended.h in die Datei zu integrieren, wo ich performSelector ohne Glück anrufe. Irgendwelche Ideen?
Bitte nicht tun. Es ist eine gute Sache, über die andere Bescheid wissen. – uchuugaka