0

我正在尝试将 UIImageView(s) 的多个实例添加到 NSMutableDictionar(ies) 的 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 值来表示运动变化率)

4

1 回答 1

1

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

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

将这条线移到 for 循环之外/之前,你应该没问题。

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

于 2009-05-07T23:05:34.413 回答