Добавление UIImageView к NSMutableDictionary - PullRequest
0 голосов
/ 07 мая 2009

Я пытаюсь добавить несколько экземпляров UIImageView (ов) в NSMutableArray NSMutableDictionar (s).

Я делаю это, чтобы иметь возможность вернуться и извлечь ссылку на UIImageView, чтобы изменить положение этих изображений.

Кажется, что, когда я извлекаю информацию из словаря, он возвращает только нулевой указатель ...

Есть предложения, как мне это реализовать? Может быть более простой способ сохранить список из n изображений и иметь возможность ссылаться на них позже ....

// (for i = 0 to 30)

UIImageView *newBall = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"ball.png"]];
newBall.center = CGPointMake (arc4random() % 280 + 20, arc4random() % 440 + 20);
[self.view addSubview:newBall];

NSMutableDictionary *dictBall = [[[NSMutableDictionary alloc] init] autorelease];
[dictBall setValue:newBall forKey:@"imgBall"];

// the dictionary is then added to the array

[newBall release];

// end for loop

(я использую словарь, потому что я также храню значение dy / dx для скорости изменения движения)

1 Ответ

1 голос
/ 08 мая 2009

Код выше не выглядит нормально для меня.

Вы создаете новый NSMutableDictionary * dictBall каждый раз через цикл. Что-то сохраняет это после того, как цикл существует? Не похоже на это из вашего кода. Это может быть причиной того, что ваш объект равен нулю.

Переместите эту строку за пределы / перед циклом for, и все будет в порядке.

Кроме того, вы уверены, что хотите сохранить UIViewImage в словаре? Почему не просто идентификатор (на основе тега) и координаты (CGPoint или CGRect)? Таким образом, вы можете использовать тег, чтобы найти UIimageView через тег и переместить его куда вы хотите? Менее дорогая память.

...