我有一个称为EventEntry的NSManagedObject子类,该子类由Xcode自动生成,并且我尽量不要碰(以防我更改模型并想重新生成)。因此,我将所有添加的功能都归类为EventEntry + Extended。
这样的功能之一就是称为eventEntriesByUser的类方法。我已订阅了要定期调用的此类方法,并使用performSelector对其进行调用。
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的文件中。有任何想法吗?
最佳答案
不知何故,目标成员资格已在类别文件上关闭,这就是为什么未添加方法的原因。我可以删除这个问题。
关于objective-c - 类别类方法上的performSelector,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10014022/