我一直试图让我的数组计数,但它一直返回0,我认为它没有正确添加对象。我将我的属性放在头文件中并在layer.m文件中合成它。我在我的超级初始化中分配了空间。
NSMutableArray *asteroids;
@property (strong) NSMutableArray *asteroids;
@synthesize asteroids;
self.asteroids = [[NSMutableArray alloc] init];
-(void)findTiles
{
CGPoint tilecoord1;
int tileGid1;
int aheadcount = 200;
CCSprite *tileonPos[aheadcount];
int amounts = 0;
for(int x = 0; x<30; x++)
{
for(int y = 0; y<20; y++)
{
tilecoord1 = ccp(x+(480*currentlevel),y);
tileGid1 = [bglayer tileGIDAt:tilecoord1];
if(tileGid1 == 1)
{
tileonPos[amounts] = [bglayer tileAt:ccp(x,y)];
amounts++;
[asteroids addObject:tileonPos[amounts]];
NSLog(@"%d",[asteroids count]);
}
}
}
}
答案 0 :(得分:2)
当asteroids
运行或根本不运行时,您正在初始化findTiles
的任何方法都不会运行。没有更多的信息,就不可能多说,但这几乎肯定是正在发生的事情。
答案 1 :(得分:1)
当你初始化时你打电话给self.asteroids = [[NSMutableArray alloc] init];
,但是当你添加时,你打电话给[asteroids addObject:tileonPos[amounts]];
。
尝试:[self.asteroids addObject:tileonPos[amounts]];
或[_asteroids addObject:tileonPos[amounts]];
你还确定self.asteroids = [[NSMutableArray alloc] init];
在init中执行吗?
答案 2 :(得分:0)
如果您只想在findTiles方法中向“小行星”添加对象,请尝试在for循环之前初始化该方法中的数组。
self.asteroids = [@[] mutableCopy];