NSInvocation是iOS中向某個對象發(fā)送消息的一種方式(以強制屏幕橫屏為例)
1. 創(chuàng)建一個方法選擇器
SEL selector ? = NSSelectorFromString(@"setOrientation:");
2. 使用創(chuàng)建好的方法選擇器獲取一個NSMethodSignature類型的對象 方法的簽名
NSMethodSignature *methodSig = [UIDevice instanceMethodSignatureForSelector:selector];
3. 創(chuàng)建NSInvocation對象
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:methodSig];
4. 設(shè)置NSInvocation
[invocation setSelector:selector];
[invocation setTarget:[UIDevice currentDevice]];
int val? ? ? ? ? ? ? ? ? = UIInterfaceOrientationLandscapeRight;
[invocation setArgument:&val atIndex:2];
[invocation invoke];
傳遞參數(shù)從索引2開始 因為selector和target占用了0 和1骏庸。( 可以傳遞多個參數(shù))