我正在尝试将多个UIImageView实例添加到NSMutableDictionar的NSMutableArray中。

我这样做,能够返回并拉出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值来表示移动的变化率)

有帮助吗?

解决方案

上面的代码看起来不对我好。

每次循环都会创建一个新的NSMutableDictionary * dictBall。循环存在后是否保留它?从您的代码看起来不像它。这可能就是你的对象为零的原因。

将此行移到for循环之前/之前,你应该没问题。

另外,您确定要将UIViewImage存储在字典中吗?为什么不只是一个ID(基于标签)和坐标(CGPoint或CGRect)?这样你就可以使用标签通过标签找到UIimageView并将其移动到你想要的地方?更便宜的记忆。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top