0

在我正在制作的游戏中,我制作了一个名为 bomb 的类文件。在文件中,我有一个名为 displayBomb 的方法:

    - (void) displayBomb
    {
        bombImage = [[UIImageView alloc] initWithFrame:CGRectMake(50, 50, 50, 50)];
    }

该方法应该在屏幕上显示图像。在 ViewDidLoad 的 ViewController.m 文件中,我有:

    bomb *bomb1 = [[bomb alloc] init];
    [bomb1 setValue:[UIImage imageNamed:@"image.png"] forKey:@"bombImage"];
    [bomb1 displayBomb];

但是,它不显示任何内容。我认为问题是我需要类似[self.view addSubview:bombImage]. 当我把它放在 ViewController.m 文件中时,它说Use of undeclared identifier 'bombImage'. 当我把它放在bomb.m中时,它说property "view" not found on object of type bomb *。我想我需要类似的东西[ViewController.view addSubview:bombImage],但它会返回property "view" not found on object of type ViewController

4

2 回答 2

2

您不能在没有引用的对象上调用方法。你的视图控制器需要知道bombImage或者你的炸弹需要知道你的视图控制器。您可以创建bombImage一个属性,bomb然后在您的视图控制器中执行以下操作:

[self.view addSubview:bomb1.bombImage];

编辑:我分配图像的典型方式bombImage如下:

bombImage = [[UIImageView alloc] initWithFrame:CGRectMake(50, 50, 50, 50)];
[bombImage setImage:[UIImage imageNamed:@"image.png"]];
于 2013-03-23T15:13:30.733 回答
0

将视图参数添加到您的方法:

 - (void) displayBombOnView:(UIview *)view
    {
        bombImage = [[UIImageView alloc] initWithFrame:CGRectMake(50, 50, 50, 50)];

        [view addSubview:bombImage];
}

在 viewDidLoad 调用方法中:

[bomb1 displayBombOnView:self.view];//or which view is on superview
于 2013-03-23T17:34:37.280 回答