我有两个对象,一个叫做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'
答案 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];