удаление целых чисел из массива - PullRequest
0 голосов
/ 27 января 2011

Мне нужно создать массив для координат моих спрайтов, и я хотел удалить координату, как только спрайт получил эту координату из массива, поскольку я не хочу, чтобы другой спрайт имел такую ​​же координатуЯ не могу заставить его работать, ошибок нет, и при отладке он говорит nsexception и завершает работу.что я делаю не так и где я освобождаю массивы?когда я выпускаю их в dealloc, он говорит, что мне нужно объявить их.

CGPoint cg1 = CGPointMake(33,33);
NSValue *cg1obj = [NSValue valueWithCGPoint:cg1];

CGPoint cg2 = CGPointMake(33,97);
NSValue *cg2obj = [NSValue valueWithCGPoint:cg2];

NSMutableArray *numberxy = [[NSMutableArray alloc] init]; int pointcount = 0;
[numberxy insertObject:cg1obj atIndex:pointcount++];
[numberxy insertObject:cg2obj atIndex:pointcount++];

NSMutableArray  *sprites = [[NSMutableArray alloc] init]; int spritecount = 0;
[sprites insertObject:red1 atIndex:spritecount++];
[sprites insertObject:red2 atIndex:spritecount++];

for (int i=0; i<3;i++) {
    int rpoint = arc4random() % 3;
    int rsprite = arc4random() % 3;

    CGPoint point = [[numberxy objectAtIndex:rpoint] CGPointValue];

    CCSprite *sprite1 = [sprites objectAtIndex:rsprite];

    sprite1.position = ccp(point.x,point.y);

    if (sprite1.position.x == point.x && sprite1.position.y == point.y) {
        [numberxy removeObjectAtIndex:rpoint];
        [sprites removeObjectAtIndex:rsprite];
    }
}

1 Ответ

1 голос
/ 27 января 2011

Ваш код странный.Почему xValue определяется после его использования?У вас может быть утечка, если xValue был определен ранее таким же образом, а теперь вы переопределяете xValue.Затем вы проверяете, есть ли X в новом xValue.В новом xValue ничего нет, поэтому оператор if будет иметь значение false, поэтому ничего не будет удалено.

NSNumber *X = [NSNumber numberWithInt:randomNumberx];
[xValue containsObject: numberx];

xValue = [[NSMutableArray alloc]init];
if ([xValue containsObject:X]) {
    [numberx removeObject:X];
}

Кроме того, в чем смысл [xValue containsObject: numberx]; вне оператора if?У него нет цели.

...