У меня есть подкласс NSManagedObject, называемый EventEntry, который автоматически генерируется Xcode, и я стараюсь не прикасаться (в случае, если я изменю модель и хочу переименовать). Поэтому я добавил любую добавленную функциональность в категорию EventEntry + Extended.performSelector по методу класса категорий
Одним из таких бит функциональных возможностей является метод класса, называемый eventEntriesByUser. Я подписал этот метод класса, который вызывается периодически, и используйте функцию executeSelector для его вызова.
EventEntry + Extended.h
@interface EventEntry (Extended)
+ (void)eventEntriesByUser;
@end
EventEntry + Extended.m
@implementation EventEntry (Extended)
+ (void)eventEntriesByUser
{
trace(@"%s", __PRETTY_FUNCTION__);
}
@end
Однако я получаю сбой при попытке сделать это.
[EventEntry performSelector:@selector(eventEntriesByUser)];
Ошибка ...
+[EventEntry eventEntriesByUser]: unrecognized selector sent to class 0xbda08
Если переместить этот метод в EventEntry он работает, как ожидалось. Я также пытался включить EventEntry + Extended.h в файл, где я вызываю функцию performSelector без везения. Есть идеи?
Просьба не обращаться. Это хорошая информация, о которой узнают другие. – uchuugaka