警告:"CCDirector may not respond to view"

ArcadeHighScoreLayer.m中

添加UITableView :

@implementation ArcadeHighScoreLayer
{
    UITableView *table;
    int count[N_OF_SECTION];
}
- (void) onEnterTransitionDidFinish
{
 [[[CCDirector sharedDirector] view] addSubview:table];
}

但是系统给出警告:

"CCDirector may not respond to view"

还有一个异常:

 "[CCDirectorDisplayLink view]: unrecognized selector sent to instance 0x7c66c80
    2013-06-13 17:50:08.394 Games[6068:12203] *** Terminating app due to uncaught exception of class '_NSZombie_NSException'
    libc++abi.dylib: terminate called throwing an exception** " 

怎么办?请指教,谢谢。

这个问题看起来是因为你在 ArcadeHighScoreLayer.m 中试图添加一个 UITableView 到 CCView 上,但是你使用了一个未知的方法 view 来获取 CCView,导致系统发出了警告。


正确的做法是使用 Cocos2d 提供的方法来获取 CCView,比如:

CCDirector *director = [CCDirector sharedDirector];
CCGLView *glView = [director openGLView];

然后将 UITableView 添加到 glView 上就可以了。


另外,你提到的那个异常是由于你尝试调用 CCView 的未知方法 view 导致的,所以你需要修改你的代码来解决这个异常。