NSInvocation是iOS中向某个对象发送消息的一种方式(以强制屏幕横屏为例)
1. 创建一个方法选择器
SEL selector = NSSelectorFromString(@"setOrientation:");
2. 使用创建好的方法选择器获取一个NSMethodSignature类型的对象 方法的签名
NSMethodSignature *methodSig = [UIDevice instanceMethodSignatureForSelector:selector];
3. 创建NSInvocation对象
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:methodSig];
4. 设置NSInvocation
[invocation setSelector:selector];
[invocation setTarget:[UIDevice currentDevice]];
int val = UIInterfaceOrientationLandscapeRight;
[invocation setArgument:&val atIndex:2];
[invocation invoke];
传递参数从索引2开始 因为selector和target占用了0 和1。( 可以传递多个参数)