我在我的场景中添加了一个图层,我想通过在初始化后设置一个名为doneInitializing到YES的布尔值来检查它何时被完全加载。但我需要用某种方式.我该怎么做?
LoadingScreen.h
@interface LoadingScreen : CCLayerColor{
CCLayer *hWL;
}LoadingScreen.m
hWL = [HelloWorldLayer node];
[self addChild:hWL];
if(hWL.doneInitializing == YES){ // that is where I get stuck
//do something
}我无法访问变量doneInitializing..。为什么?
HelloWorldLayer.h
@interface HelloWorldLayer : CCLayer
{
BOOL doneInitializing;
}
@property (nonatomic,readwrite) BOOL doneInitializing;HelloWorldLayer.m
@synthesize doneInitializing;是否有更好的方法来实现这一点?
发布于 2012-05-31 13:42:16
只需改变这一部分:
@interface LoadingScreen : CCLayerColor{
CCLayer *hWL;
}对此:
@interface LoadingScreen : CCLayerColor{
HelloWorldLayer *hWL;
}或者用这一行代替:
if(((HelloWorldLayer *)hWL).doneInitializing == YES){编译器和运行时需要知道您正在获得HelloWorldLayer的属性,而不是CCLayer。尽管您正在分配hWL = [HelloWorldLayer node],但hWL已被声明为普通的CCLayer,而hWL.doneInitializing的行陷入了麻烦,因为据运行时所知,CCLayer没有一个名为doneInitializing的属性。您需要告诉运行时“hWL是一个HelloWorldLayer”,方法是将hWL声明为HelloWorldLayer或将其转换为该类。
https://stackoverflow.com/questions/10834010
复制相似问题