iOS NSIvocation的简介与使用
2016-07-13 11:01
369 查看
一、简介
NsInvocation 主要是为完成,调用某个对象的方法 ,进行使用的;(通常是因为这个对象的方法没有Api)
二、使用方式
Nsivlcation 的功能较为强大,可以传值多个参数;
在.m 文件中的代码
- (void)viewDidLoad {
[super
viewDidLoad];
//NSMethodSignature:
生成的签名
第一个参数传的是你要调用的类,第二个参数是在类中实现的方法(方法不在.h文件中声明
也没有关系)
SEL seclector =
NSSelectorFromString(@"changeName:withtype:");
NSMethodSignature * signature = [ViewController
instanceMethodSignatureForSelector:seclector];
//创建NSInvocation
第一个参数传的是签名
NSInvocation * vocation = [NSInvocation
invocationWithMethodSignature:signature];
//target传的是你想要调用的类
必须与生成签名的时候
一致
vocation.target =
self;
//voation中的方法必须和签名中的方法一致
vocation.selector = seclector;
//参数的传递
NSString * name =
@"郭晓广";
//设置参数的时候
不能从0开始,因为0已经被self占用,1已经被_cmd占用
只能从2开始
[vocation setArgument:&name
atIndex:2];
//同上
NSString * type =
@" 啊啊啊啊";
[vocation setArgument:&type
<
4000
/span>atIndex:3];
//只要调用invocation的invoke方法,就代表执行nsivocation对象中制定对象的指定方法
[vocation invoke];
}
-(void)changeName:(NSString * )name withtype:(NSString*)type
{
NSLog(@"改变名字%@,%@",name,type);
}
NsInvocation 主要是为完成,调用某个对象的方法 ,进行使用的;(通常是因为这个对象的方法没有Api)
二、使用方式
Nsivlcation 的功能较为强大,可以传值多个参数;
在.m 文件中的代码
- (void)viewDidLoad {
[super
viewDidLoad];
//NSMethodSignature:
生成的签名
第一个参数传的是你要调用的类,第二个参数是在类中实现的方法(方法不在.h文件中声明
也没有关系)
SEL seclector =
NSSelectorFromString(@"changeName:withtype:");
NSMethodSignature * signature = [ViewController
instanceMethodSignatureForSelector:seclector];
//创建NSInvocation
第一个参数传的是签名
NSInvocation * vocation = [NSInvocation
invocationWithMethodSignature:signature];
//target传的是你想要调用的类
必须与生成签名的时候
一致
vocation.target =
self;
//voation中的方法必须和签名中的方法一致
vocation.selector = seclector;
//参数的传递
NSString * name =
@"郭晓广";
//设置参数的时候
不能从0开始,因为0已经被self占用,1已经被_cmd占用
只能从2开始
[vocation setArgument:&name
atIndex:2];
//同上
NSString * type =
@" 啊啊啊啊";
[vocation setArgument:&type
<
4000
/span>atIndex:3];
//只要调用invocation的invoke方法,就代表执行nsivocation对象中制定对象的指定方法
[vocation invoke];
}
-(void)changeName:(NSString * )name withtype:(NSString*)type
{
NSLog(@"改变名字%@,%@",name,type);
}
相关文章推荐
- ios initialize与load的区别
- iOS开发支付集成之支付宝支付
- iOS开发-去掉Tabbar顶部线条
- iOS开发支付集成之支付宝支付
- iOS 25个性能优化/内存优化常用方法
- iOS极光推送 点击推送消息跳转页面
- iOS-JS调用OC
- iOS开发 支付之银联支付集成
- iOS开发 支付之银联支付集成
- iOS学习(三十四)iOS应用程序的生命周期
- iOS开发下拉放大,从模糊变清晰的效果
- iOS学习:调用相机和相册,选择图片上传
- iOS 单例的正确姿势
- 关于iOS后台模式
- iOS推送通知的证书设置
- iOS学习笔记:交换Button中图片与文字的左右位置
- iOS键盘按下return和点击空白处时候收起
- 李洪强iOS开发之keychain的使用
- 个人iOS项目常用效果方法注意点集锦(上)
- 李洪强iOS开发支付集成之银联支付