Pregunta

Estoy intentando agregar varias instancias de UIImageView (s) a un NSMutableArray de NSMutableDictionar (s).

Estoy haciendo esto, para poder regresar y extraer la referencia UIImageView, para cambiar la posición de estas imágenes.

Parece que, cuando saco la información del Diccionario, solo devuelve un puntero nulo ...

¿Alguna sugerencia sobre cómo debería implementar esto? Puede haber un método más sencillo para almacenar una lista de n imágenes y poder hacer referencia a ellas más tarde ...

// (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

(Estoy usando un diccionario, porque también almaceno un valor dy / dx para la tasa de cambio en el movimiento)

¿Fue útil?

Solución

El código anterior no me parece bien.

Estás creando un nuevo NSMutableDictionary * dictBall cada vez a través del ciclo. ¿Hay algo reteniéndolo después de que exista el bucle? No se ve así desde su código. Esta puede ser la razón por la cual su objeto es nulo.

Mueva esta línea fuera / antes del bucle for, y debería estar bien.

Además, ¿estás seguro de que deseas almacenar UIViewImage en un diccionario? ¿Por qué no solo una ID (basada en la etiqueta) y las coordenadas (CGPoint o CGRect)? De esta manera, puede usar la etiqueta para encontrar UIimageView a través de la etiqueta y moverla a donde quiera. Menos costoso en cuanto a memoria.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top