我想将选择器添加到NSMutableArray。但是由于它们是不透明的类型并且没有对象,所以那是行不通的,对吗?我可以使用包装器对象吗?还是我必须创建自己的?

最佳答案

您可以将选择器的NSString名称存储在数组中并使用

SEL mySelector = NSSelectorFromString([selectorArray objectAtIndex:0]);


从存储的字符串生成选择器。

此外,您可以使用以下方法将选择器打包为NSInvocation:

NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[self methodSignatureForSelector:mySelector]];

[invocation setTarget:self];
[invocation setSelector:mySelector];
[invocation setArgument:&arg atIndex:2];
[invocation retainArguments];


然后可以将此NSInvocation对象存储在数组中,并在以后调用。

08-17 07:11