如何将3个参数传递给@selector

smi*_*ann 3 iphone objective-c ios

我创建了一个动作

-(void) ccTouchEnded:(UITouch *)touch withEvent:(UIEvent *)event
Run Code Online (Sandbox Code Playgroud)

就像这样:

self.moveAction = [CCSequence actions:                          
                   [CCMoveTo actionWithDuration:moveDuration position:touchLocation],
                   [CCCallFunc actionWithTarget:self selector:@selector(guyMoveEnded)],
                   nil
                  ];
Run Code Online (Sandbox Code Playgroud)

但现在,我想通过以下方式自动调用以下方法@selector:

-(void)guyMoveEnded:(BOOL)flag AndWhere:(CGPoint)where Andtime:(float)time{
    //do something...
}
Run Code Online (Sandbox Code Playgroud)

我该怎么做?请帮助我,我对选择器感到困惑.

感谢名单!

Esb*_*enB 10

您可以将参数添加到a NSArray,然后将其作为选择器的参数:

NSArray *params = [NSArray arrayWithObjects:@"a str", [NSNumber numberWithInt:42],myObj];
[self performSelector:@selector(myMethod:)withObject:params];
Run Code Online (Sandbox Code Playgroud)

然后解压缩方法中的参数:

-(void)myMethode:(NSArray*)params
{
    NSString *strArg = [params objectAtIndex:0];
    NSNumber * numVal = [params objectAtIndex:1];
    NSObject *objArg = [params objectAtIndex:2];
    int intArg = [numVal intValue];
    .
    .
    .   
}
Run Code Online (Sandbox Code Playgroud)