对于Xcode
而言,我很高兴,但现在就这样了。
我有一个NSArray
有5个UIImageView
,我有一个脚本可以随机选择UIImageView
,但我需要它然后输出图像的中心选择。
我的代码如下所示:
NSMutableArray *Invader = [[NSMutableArray alloc] init];
[Invader addObject:H1];
[Invader addObject:H2];
[Invader addObject:H3];
[Invader addObject:H4];
[Invader addObject:H5];
然后像这样选择将新UIImageView
移动到:
if (FIRE1 == YES){
NSObject *Inv1 = [Invader randomObject]; //randomObject picks a random Invader
InvaderBullet1.hidden = NO;
InvaderBullet1.center = CGPointMake(Inv1.center.x, Inv1.center.y)
}
它给我的错误是Property 'center' not found on object of type 'NSObject *'
我希望这对任何人都有意义,任何人都可以帮助我。
由于
答案 0 :(得分:0)
NSObject显然没有中心属性。虽然您没有将NSObject添加到您的数组中,但您正在添加(我假设)UIImageViews。因此,如果您要添加UIImages,也可以删除UIImages。
if (FIRE1 == YES){
NSObject *Inv1 = [Invader randomObject];
if ([Inv1 isKindOfClass:[UIImageView Class]]) //randomObject picks a random Invader
((UIImageView*)InvaderBullet1).hidden = NO;
((UIImageView*)InvaderBullet1).center = CGPointMake(Inv1.center.x, Inv1.center.y)
}
答案 1 :(得分:0)
您只需为变量指定正确的类型:
if (FIRE1 == YES){
UIImageView *Inv1 = [Invader randomObject]; //randomObject picks a random Invader
InvaderBullet1.hidden = NO;
InvaderBullet1.center = CGPointMake(Inv1.center.x, Inv1.center.y)
}
这假设您的randomObject
方法(看起来像NSArray
上的类别方法)的返回类型为id
。如果其返回类型为NSObject *
,那么您需要进行强制转换:
UIImageView *Inv1 = (UIImageView *)[Invader randomObject]; //randomObject picks a random Invader
(次要注意:我建议坚持既定的命名约定。在这种情况下:变量通常以小写字符开头。您正在做其他需要/想要使用您的代码的人一个忙。)