新的Obj C和一般的編程 - 從這個網站學到很多東西,非常感謝大家的貢獻。從另一個類訪問類的實例變量(NSMutable Array)
我的情況如下(編程的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;
}
的櫻桃炸彈頭文件短:
#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
我想要做的是當櫻桃炸彈引爆(這是在櫻桃炸彈對象內部確定的)時,我希望該對象從櫻桃炸彈陣列中移除,而櫻桃炸彈陣列是視圖控制器的一個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
您的幫助是非常感謝。先謝謝你!