我创建了一个静态库供其他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构建)中进行这项工作。 在highscores类中,我包括了头文件并实现了委托。 在实现文件中,我调用以下代码:

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

为了您的考虑,我主持高分类- 页眉实施 执行上述方法时出现的错误是:

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'

我知道这是一个乏味的问题。 将非常感谢您的帮助。 谢谢

===============>>#1 票数:1

它告诉您Highscore类没有视图方法。 您的协议说,委托只需要是一个NSObject就可以了。

===============>>#2 票数:0

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

  ask by Gaurav Wadhwani translate from so

未解决问题?本站智能推荐:

关注微信公众号