Как добавить UIImages в NSMutableArray и изменить изображения позже? - PullRequest
1 голос
/ 15 мая 2011

Я делаю простую игру, которая требует, чтобы я рисовал несколько UIImages в разных местах.Моя проблема заключается в том, что мне нужно добавить UIImages в NSMutableArray и получить к ним доступ позже.Использование NSStrings для представления изображений (например, для путей) здесь не будет работать, поэтому мне нужно знать, как изменить изображения для каждого UIImage в массиве.доступ к NSMutableArray).NSMutableArray объявлен в моем файле .h, и инициализируется другим методом.

for (int a = 0; a <= [theArray count]; a ++) {
    // I make a UIImage, which I will draw later
    UIImage *theImage = [theArray objectAtIndex:a];
    // then I do the drawing
}

Это прекрасно работает.Моя проблема в том, что я не могу понять, как изменить конкретный объект в NSMutableArray.Как я могу это сделать?

Кстати, я добавляю UIImages в NSMutableArray со следующим кодом.

+ (void) createCarWithImage:(NSString*)theImageName {
    UIImage *anImage= [UIImage imageNamed:theImageName];
    [theArray addObject:anImage];
}

Ответы [ 2 ]

1 голос
/ 15 мая 2011

Я думаю, вы хотите использовать этот метод:

- (void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject

Например:

[theArray replaceObjectAtIndex:4 withObject:someOtherImage];
1 голос
/ 15 мая 2011

Просто измените каждый UIImage в NSMutableArray как есть, у вас есть только указатель на фактические данные.То есть независимо от того, какой указатель вы используете для изменения данных, данные меняются для каждого указателя.

Кроме того, вы также можете выполнять итерацию по вашим UIImage s с помощью:

for (UIImage *img in theArray)
{
     //send messages to img
}

Ответ на комментарий

Вы можете изменить UIImage в индексе 4 следующим образом:

UIImage *image = [theArray objectAtIndex:4];
//send messages to image
...