使用NSInvocation 调用实例的方法,且等待获得返回值
2009-01-08 10:41
429 查看
OBJCExternInterface * ibjInter = [[OBJCExternInterface alloc] init]; //定义类的实例
SEL theSelector;
NSMethodSignature *aSignature;
NSInvocation *anInvocation;
theSelector = @selector(ReadFromFile:); //选择一个方法
aSignature = [OBJCExternInterface instanceMethodSignatureForSelector:theSelector]; //得到类和方法的方法信号
anInvocation = [NSInvocation invocationWithMethodSignature:aSignature]; //调用方法信号
[anInvocation setSelector:theSelector]; // 设立方法
[anInvocation setTarget:ibjInter]; //设置目的实例
[anInvocation setArgument:&arrParameters atIndex:2];//设置参数(1个参数的方法 index 为2,1为隐藏参数),可设置多个参数
id result;
[anInvocation invoke]; //调用方法
[anInvocation getReturnValue:&result]; //完成调用设置调用返回值
SEL theSelector;
NSMethodSignature *aSignature;
NSInvocation *anInvocation;
theSelector = @selector(ReadFromFile:); //选择一个方法
aSignature = [OBJCExternInterface instanceMethodSignatureForSelector:theSelector]; //得到类和方法的方法信号
anInvocation = [NSInvocation invocationWithMethodSignature:aSignature]; //调用方法信号
[anInvocation setSelector:theSelector]; // 设立方法
[anInvocation setTarget:ibjInter]; //设置目的实例
[anInvocation setArgument:&arrParameters atIndex:2];//设置参数(1个参数的方法 index 为2,1为隐藏参数),可设置多个参数
id result;
[anInvocation invoke]; //调用方法
[anInvocation getReturnValue:&result]; //完成调用设置调用返回值
相关文章推荐
- 使用NSInvocation 调用实例的方法,且等待获得返回值
- 使用extjs,来实现一个页面调用另一个页面中的方法,并且能获得方法的返回值
- 使用ArrayList集合,对其添加100个不同的元素: 1.使用add()方法将元素添加到ArrayList集合对象中; 2.调用集合的iterator()方法获得Iterator对象,并调用Ite
- 使用存储过程并返回值与及返回值的获得方法
- Redis(Windows安装方法与Java调用实例 & 配置文件参数说明 & Java使用Redis所用Jar包 & Redis与Memcached区别 & redis-cli.exe命令及示例)
- 300.33通过读取配置文件方式来使用反射完成实例对象调用方法
- 使用存储过程并返回值与及返回值的获得方法
- 使用存储过程并返回值与及返回值的获得方法[转]
- 使用反射构造对象实例并动态调用方法
- 使用ExternalInterface调用Flex方法-无参数、无返回值!
- 调用存储过程并且使用返回值的基本方法
- 如题,既然直接对一个实例发送方法名就可以调用这个方法,那为什么还要使用performSelector:去调呢?两者u有啥区别
- Spring简单获得实体类的实例, 使用ApplicationContext()方法的几点注意事项
- extjs使用AJAX调用方法结束不给返回值赋值问题解决
- 使用ArrayList集合,对其添加100个不同的元素: 1.使用add()方法将元素添加到ArrayList集合对象中; 2.调用集合的iterator()方法获得Iterator对象,并调用Ite
- 作业: 一.使用泛型版的ArrayList集合,对其添加100个不同的整数: 1.使用add()方法将100个整数添加到ArrayList集合中; 2.调用集合的iterator()方法获得Itera
- 使用存储过程并返回值与及返回值的获得方法
- 使用ExternalInterface调用JS方法-无参数、无返回值!
- ios--OC调用JS并获得返回值(实例)
- [c#美味] 使用反射动态创建实例并调用方法