我有一个称为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/

10-10 06:26