Obj C 和一般编程的新手 - 从这个站点学到了很多东西,非常感谢每个人的贡献。
我的场景如下(编写一个解释有趣名字的 iPhone 游戏)
在我的主游戏循环(在我的视图控制器中)中,如果满足某个条件,我会创建一个敌人 - 樱桃炸弹
if (bounceCounterGlobal % 2 == 0 && bounceCounterGlobal > 1 && cherryBombSwitch == 0){
[self addCherryBomb];
}
addCherryBomb 方法如下:
-(void) addCherryBomb{
CherryBomb *myCherryBomb = [[CherryBomb alloc] init];
[cherryBombArray insertObject:myCherryBomb atIndex:0];
[myCherryBomb release];
[[cherryBombArray objectAtIndex:0] initializeCherryBomb];
[self.view addSubview:[[cherryBombArray objectAtIndex:0] cherryBombView]];
cherryBombSwitch = 1;
}
CherryBomb 头文件很短:
#import <Foundation/Foundation.h>
#import "SimpleGameViewController.h"
@interface CherryBomb : NSObject {
UIImageView *cherryBombView;
NSTimer *cherryBombDetonateTimer;
NSTimer *cherryBombMoveTimer;
}
@property (nonatomic, retain) UIView *cherryBombView;
-(void) initializeCherryBomb;
-(void) detonateCherryBomb;
-(void) moveCherryBomb;
@end
我想要做的是当樱桃炸弹引爆(这是在cherryBomb 对象中确定的)时,我希望该对象从cherryBombArray 中移除自己,它是视图控制器的一个ivar。
我尝试调用视图控制器类方法来执行此操作 - 但我无法访问视图控制器的 ivars(因为它是一个类方法)。我不知道如何与视图控制器类进行通信以告诉它删除爆炸的对象。
@implementation CherryBomb
...
-(void) detonateCherryBomb{
NSLog(@"KABOOM!");
cherryBombDetonateTimer = nil;
[cherryBombMoveTimer invalidate];
[cherryBombView removeFromSuperview];
//I would like to remove this object from the view controller's cherryBombArray
}
@end
非常感谢您的帮助。先感谢您!