发送给-委托的未识别实例



我创建了一个静态库用于我的其他iOS应用程序项目。它的工作方式是应用程序项目在我的静态库中实现协议并调用静态库中的方法。然后,静态库在调用视图之上呈现一个视图。代码如下:

委托中的主类MyFile.h文件:

@protocol MyHandlerDelegate <NSObject>
     - (void)infoRetrieved:(BOOL)success;
@end
@interface MyFile : UIViewController
{
    id <MyHandlerDelegate> delegate;
}
@property (retain) id delegate;

MyFile。m包含:

- (void)showRewards
{
    [[[self delegate] view] addSubview:view1];
}

现在,当我创建一个只有一个按钮的虚拟应用程序时,这工作得很好,静态库成功地在调用视图的顶部呈现了一个视图。现在我需要在开源游戏《TweetJump》(基于Cocos2D)中实现这一点。在hilicores类中,我包含了头文件并实现了委托。在实现文件中,我调用以下代码:

MyFile *mf = [[MyFile alloc] init];
[mf setDelegate:self];
[mf showRewards];

为了您的考虑,我已经托管了Hilicore类-头和实现。当执行上述方法时,我得到的错误是:

2013-04-16 23:54:42.658 tweejump[11502:c07] +[Highscore view]: unrecognized selector sent to class 0xecc08 2013-04-16 23:54:42.661 tweejump[11502:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[Highscore view]: unrecognized selector sent to class 0xecc08'

我知道这是个乏味的问题。非常感谢你的帮助。由于

它告诉你Hilicore类没有视图方法。你的协议说委派只需要是一个NSObject没有更具体的

看起来您是在类方法而不是实例方法中调用这段代码的。对象与其类是不可互换的。让您的实际Hilicore对象而不是类来执行此操作。

最新更新