Вызываете SEL (селектор) класса в iPhone? - PullRequest
0 голосов
/ 31 января 2012

У меня есть класс, в котором я вызываю метод (с параметром SEL) другого класса, как показано ниже

// class 1

+(CCScene *) scene
{
// 'scene' is an autorelease object.
CCScene *scene = [CCScene node];

// 'layer' is an autorelease object.
HelloWorldLayer *layer = [HelloWorldLayer node];

// add layer as a child to scene 
[scene addChild: layer];

// returns a CClayer Object
id myClassLayer = [myClass objWithBackgroundSprite:objBackground withRect:CGRectMake(160,100, 300,120) atPoistion:pos_Top];

SEL callOnClick;
[myClassLayer AddButtonWithImage:ButtonBackground selector:callOnClick withDisabledImage:disabledBackground];

[scene addChild: myClassLayer];

// return the scene
return scene;
}

// class 2

-(void)AddButtonToHUDWithImage:(NSString *)imageName selector:(SEL)selector withDisabledImage:(NSString *)disbdImageName

{

CCMenuItem *menuItem1 = [CCMenuItemImage itemFromNormalImage:imageName selectedImage:imageName disabledImage:disbdImageName target:self selector:@selector(selector)];

CCMenu *menu = [CCMenu menuWithItems:menuItem1,nil];  
[menu setPosition:ccp(160,100)];
[self addChild:menu];
}

-(void)selector
{
    // not creating any object .. some other way if possible
}

, но я хотел бы объявить метод селектора (callOnClick) только в HelloWorld(myClass является универсальным классом).

Как я могу вызвать селектор только в HelloWorld ??

1 Ответ

0 голосов
/ 31 января 2012

Если вам не нужен экземпляр, вы можете использовать метод класса, и цель / объект будет [SOMEType class] или [self class]:

+ (void)selector // <<    + not -
{
    // not creating any object .. some other way if possible
}
...