我创建了一个静态库,用于我的其他 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 构建)中完成这项工作。在高分类中,我包含了头文件并实现了委托。在实现文件中,我调用以下代码:
MyFile *mf = [[MyFile alloc] init];
[mf setDelegate:self];
[mf showRewards];
为了您的考虑,我主持了 Highscore 课程 - Header和Implementation。执行上述方法时出现的错误是:
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'
我知道这是一个乏味的问题。将非常感谢您的帮助。谢谢