我有一个主要的游戏类,它使用Open GL渲染游戏。现在我想我可以从此类继承,然后只需在其init方法中调用[super init]即可获得它的副本。该计划是要对副本进行一些修改,但看来这是行不通的。

以下是我班的头文件:

#import "GameView.h"


@interface CloneView : GameView {

}

-(id)initWithFrame:(CGRect)frame;

@end


这是Clone视图类:

@implementation CloneView

-(id)initWithFrame:(CGRect)frame{
    return [super initWithFrame:frame];
}

@end


如果我在GameView类的init方法中设置了一个断点,它将在此停止。问题是:我的克隆视图无法渲染,屏幕保持黑色。
我想念什么?谢谢你的帮助!

编辑
仅作记录:我尝试不实施initFrame并得到相同的结果。 (正如上面的initFrame一样,除了调用super以外,没有做任何其他事情)

编辑2
我要将克隆添加到另一个视图中,所以要创建两个Eagle环境。那可能是它不起作用的原因吗?

最佳答案

如果您没有在initCloneView函数中添加任何内容,则甚至不必重写它。您只需让您的类继承自GameView,它就会自动复制它的init函数。

关于iphone - objective-c 的继承,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6775306/

10-10 08:19