如何将数组中的对象的UIImageView添加到视图中?

时间:2011-07-01 14:27:19

标签: iphone objective-c uiimageview nsmutablearray

我有两个对象,一个叫做CollidableController,另一个是Collidable。可碰撞控制器创建Collidables并将它们添加到一个数组(在这种情况下就像一个队列),但我很难将Collidable的UIImageView添加到当前视图中。在我将它添加到数组之前它工作正常但我无法添加数组中的那个

 Collidable  *collidable = [[Collidable alloc] init:0];

[leftMovingBytesQueue enqueue:collidable];
//used a category to add this to NSMutableArray so it can act as a queue, this adds the 'collidable' object to the end of the array

[view addSubview:collidable.spriteImage];
collidable.spriteImage.center=CGPointMake(200, 200);
//adding the original collidable object's uiimageview to a view works fine

int length=[leftMovingBytesQueue count]-1;

[view addSubView:[leftMovingBytesQueue objectAtIndex:length].spriteImage];
 //this line doesn't work, I get the error Semantic Issue: Property 'spriteImage' not found on object of type 'id'

3 个答案:

答案 0 :(得分:1)

[view addSubView:[[leftMovingBytesQueue objectAtIndex:length] spriteImage]];

这应该让编译器开心。

答案 1 :(得分:1)

使用“addSubview”而不是“addSubView”。注意小写的'v'。 试试这个:

Collidable  *collidableObj=(Collidable*)[leftMovingBytesQueue objectAtIndex:0];
UIImageView* imView=collidableObj.spriteImage; //just checking
[view addSubview:imView];

您正在冒充可碰撞对象。尝试使用[leftMovingBytesQueue objectAtIndex:0]。数组的最后一个元素可能不是你想要的。

答案 2 :(得分:0)

尝试将对象强制转换为自定义类:

[view addSubView:(Collidable*)[leftMovingBytesQueue objectAtIndex:length].spriteImage];