Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
(xcode objective-c)数组-在数组中查找对象的中心_Objective C_Uiimageview_Nsarray - Fatal编程技术网

(xcode objective-c)数组-在数组中查找对象的中心

(xcode objective-c)数组-在数组中查找对象的中心,objective-c,uiimageview,nsarray,Objective C,Uiimageview,Nsarray,当谈到Xcode的时候,我是非常愚蠢的 我有一个NSArray和5个UIImageView,我有一个脚本可以随机选择一个UIImageView,但是我需要它来输出所选图像的中心。 我的代码如下所示: NSMutableArray *Invader = [[NSMutableArray alloc] init]; [Invader addObject:H1]; [Invader addObject:H2]; [Invader addObject:H3]; [Invader addObject:H4

当谈到
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)
}
它给我的错误是在“NSObject*”类型的对象上找不到属性“center”

我希望这对任何人都有意义,任何人都能帮助我


谢谢

NSObject显然没有center属性。虽然您没有将NSObjects添加到阵列中,但您正在添加(我假定)UIImageView。因此,如果要添加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)
    }

您只需为变量指定正确的类型:

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
上的category方法)的返回类型为
id
。如果其返回类型为
NSObject*
,则需要执行强制转换:

UIImageView *Inv1 = (UIImageView *)[Invader randomObject]; //randomObject picks a random Invader

(次要说明:我建议坚持既定的命名约定。在这种情况下:变量通常以小写字符开头。你正在帮助其他需要/希望使用你的代码的人。)

没有“Xcode数组”这样的东西。Xcode是一个IDE…@septi:他可能在标题中添加了(Xcode)来表示这是一个与Xcode相关的问题(尽管这是标记的用途),它与数组没有任何关系。这个问题与Xcode根本没有关系。如果你愿意,你可以在vim中编写iOS或OS X应用程序。我是xcode的noob,这对我没有帮助,但我需要这段代码,以便能够从数组中选择一个随机对象,并将其中心输出到入侵者Bullet1显示入侵者的代码。我正在将UIImageView添加到数组中编辑答案,虽然我不喜欢你没有努力尝试和定制我的代码。我一直在我的xcode中对其进行调整,并使其正常工作,谢谢你的帮助^^@LordZsolt这不是工作的方式,你没有给出他们需要调整和自定义的部分答案,你应该对他们提出的问题给出完整的答案,否则你给出答案就没有意义了。@Popeye我不得不说这是一个UIImageView而不是UIImage,然后在我的xcode中对它进行了评论和调整。