Obj C とプログラミング全般の初心者 - このサイトから多くのことを学び、皆さんの貢献に本当に感謝しています。
私のシナリオは次のとおりです(面白い名前を説明するiPhoneゲームのプログラミング)
メインのgameLoop(ビューコントローラーにあります)で、特定の条件が満たされた場合、敵を作成します-チェリーボム
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オブジェクト内で決定されます)、ビューコントローラーのivarであるcherryBombArrayからオブジェクトを削除したいということです。
これを行うためにView Controllerクラスメソッドを呼び出してみましたが、View Controllerのivarにアクセスできません(クラスメソッドであるため)。ビューコントローラークラスに通信して、分解されたオブジェクトを削除するように指示する方法がわかりません。
@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
よろしくお願いいたします。前もって感謝します!