用NSInvocation来实现对象的任意方法的调用
- (int)sumABC {
SEL sel = @selector(sumWithA:B:C:)
NSMethodSignature *methodSignature = [self methodSignatureForSelector:sel]
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:methodSignature]
[invocation setSelector:sel]
[invocation setTarget:self]
int a = 1, b = 2, c = 3
[invocation setArgument:&a atIndex:2]
[invocation setArgument:&b atIndex:3]
[invocation setArgument:&c atIndex:4]
[invocation invoke]
int sum
[invocation getReturnValue:&sum]
NSLog(@"sum is %d", sum)
return sum
}
- (int)sumWithA:(int)A B:(int)B C:(int)C {
return A + B + C
}