使用 invocationWithMethodSignature: 方法初始化一个 NSInvocation 实例
1、创建签名
NSMethodSignature *signature = [[self class] instanceMethodSignatureForSelector:selector];
if (signature == nil) {
signature = [self methodSignatureForSelector:selector];
if (signature == nil) {
return nil; }
}
2、创建 NSInvocation 实例
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
invocation.target = self;
invocation.selector = selector;
3、参数处理
参数的0和1位置分别被target和selector占用了,所以从位置2开始添加参数。
if (invocation != nil) {
[invocation setArgument:&wssMessage atIndex:2];
[invocation invoke];
}
4、返回值
id res