0

我正在尝试将精灵添加到 aNSMutableArray但它没有添加它们。这就是我所拥有的:

NSMutableArray *tail;
CCSprite *block;
int j;
-(void)handleTail:(CCSprite*)pos{
    CGPoint point= pos.position;
    block = [CCSprite spriteWithFile:@"Icon-Small-50.png"];
    //Adding the tail blocks
    block.scale = .8;
    block.color = ccGREEN;
    block.position = point;
    NSLog(@"Block Pos (%f,%f)",block.position.x,block.position.y);

    //CGPoint playerPos = piece.position;

    originalPos = point;

    if ([tail count] < maxLength) {
        [tileMap addChild:block];
        [tail addObject:block];
        NSLog(@"Tail length:%i",tail.count);
        j+=1;
    }
    if (j == 3) {
        NSLog(@"J called");
        [tail removeObjectAtIndex:0];
    }   
}

我不明白为什么这不起作用?

4

4 回答 4

2

您尚未分配 + 初始化tail.

在 awakeFromNib 或 init 或 viewDidLoad (适用于您的课程)使用

tail=[[NSMutableArray alloc] init];

建议注意:尝试遵循命名约定。

作为tail一个数组(复数),您应该使用tails.

于 2013-02-18T16:32:06.230 回答
1

你忘记分配 init NSMuttableArray

tail = [[NSMuttableArray alloc]init];

没有 alloc 和 init 你的数组,你不能向它添加对象

当您尝试访问其成员时,它返回 nil

试试 NSLog (@"%@",tail); 它返回

于 2013-02-20T06:04:57.387 回答
0

你需要实例化你的 NSMutableArray。

tail = [NSMutableArray array];
于 2013-02-18T16:32:41.190 回答
0

您需要分配和初始化数组。

就像是:

tail = [NSMutableArray array];
于 2013-02-18T16:33:08.413 回答