尝试在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的新手,但这似乎是大多数教程访问场景中对象的方式。我错过了什么吗?
答案 0 :(得分:0)
解决。结果证明这是Xcode的怪癖之一。由于函数声明是在c ++中,因此由于某种原因无法访问目标c自身函数。将声明更改为目标c允许它访问所有功能。对我来说没有多大意义,但它现在工作正常。
对于那些想知道的人,是的,该文件的扩展名为.mm。