使用NSInvocation在具有可变参数的方法中传递多个参数

3
我有一个方法,它接收可变参数,格式类似于这样,参数以 nil 结尾。
-(void)manyParams:(NSString *)st, ... {
    va_list argList;
    va_start(argList,st);

    id obj;

    while ((obj = va_arg(argList, id))) {
        NSLog(@"%@",obj);
    }
    va_end(argList);

    return;
}

我可以直接这样调用它。
[self manyParams:@"one",@"two",@"three",nil];

如果我使用NSInvocation类来调用manyParams方法,那么我该怎么做?
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
[invocation setTarget:self];
[invocation setSelector:@selector(manyParams:)];
///NSString *one = @"one";
///[invocation setArgument:&one atIndex:2]; //////How to pass variable arguments like @"one",@"two",@"three", nil
[invocation invoke];
1个回答

5

C联合体。参见:https://www.tutorialspoint.com/cprogramming/c_unions.htm - ipmcc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接