Cocos2D getChild导致未在范围错误中声明

时间:2011-04-23 16:01:22

标签: xcode cocos2d-iphone objective-c++

尝试在xcode中为iphone编译以下代码时

void removeGrid(int x,int y) {
    //for(id *item in self) {
        //if(item.position ==  ccp(x*32, y*32)) {
        //  printf("good");
        //}
        //printf("%@",item);
//  }
    char rrs[8];
    sprintf(rrs,"01%d%d",x/32,y/32);
    int aTag = [[[NSString alloc] initWithBytes:rrs length:sizeof(rrs) encoding:NSASCIIStringEncoding] intValue];
    //NSAssert( aTag != kCCNodeTagInvalid, @"Invalid tag");

    CCNode *child = [self getChildByTag:aTag]; //here it is simply getting a single chil

    if (child == nil)
        CCLOG(@"cocos2d: removeChildByTag: child not found!");
    else
        [self removeChild:child cleanup:true];
}

编译器说“自我未在此范围内声明”。我是objc和cocos2d的新手,但这似乎是大多数教程访问场景中对象的方式。我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

解决。结果证明这是Xcode的怪癖之一。由于函数声明是在c ++中,因此由于某种原因无法访问目标c自身函数。将声明更改为目标c允许它访问所有功能。对我来说没有多大意义,但它现在工作正常。

对于那些想知道的人,是的,该文件的扩展名为.mm。