NSInvocation的基本使用
//封装invacation可以调用多个参数的方法
-(void)invacation
{
//1.创建一个MethodSignature,签名中保存了方法的名称,参数和返回值
//这个方法属于谁,那么就用谁来进行创建
//注意:签名一般是用来设置参数和获得返回值的,和方法的调用没有太大的关系
NSMethodSignature *signature = [ViewController instanceMethodSignatureForSelector:@selector(callWithNumber:andContext:withStatus:)];
/*注意不要写错了方法名称
// NSMethodSignature *signature = [ViewController methodSignatureForSelector:@selector(call)];
*/
//2.通过MethodSignature来创建一个NSInvocation
//NSInvocation中保存了方法所属于的对象|方法名称|参数|返回值等等
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
/*2.1 设置invocation,来调用方法*/
invocation.target = self;
// invocation.selector = @selector(call);
// invocation.selector = @selector(callWithNumber:);
// invocation.selector = @selector(callWithNumber:andContext:);
invocation.selector = @selector(callWithNumber:andContext:withStatus:);
NSString *number = @"10086";
NSString *context = @"下课了";
NSString *status = @"睡觉的时候";
//注意:
//1.自定义的参数索引从2开始,0和1已经被self and _cmd占用了
//2.方法签名中保存的方法名称必须和调用的名称一致
[invocation setArgument:&number atIndex:2];
[invocation setArgument:&context atIndex:3];
[invocation setArgument:&status atIndex:4];
/*3.调用invok方法来执行*/
[invocation invoke];
}
NSInvocation的基本使用的更多相关文章
- Objective-C中NSInvocation的使用
OC中调用方法某个对象的消息呦两种方式: #1. performanceSelector: withObject: #2. NSInvocation. 第一个PerformaceSelector比较常 ...
- iOS开发——网络篇——UIWebview基本使用,NSInvocation(封装类),NSMethodSignature(签名),JavaScript,抛异常,消除警告
一.UIWebView简介 1.UIWebView什么是UIWebViewUIWebView是iOS内置的浏览器控件系统自带的Safari浏览器就是通过UIWebView实现的 UIWebView不但 ...
- NSInvocation
NSInvocation 基本简介 NSInvocation是一个静态描绘的OC消息,也就是说,它是一个动作,这个动作可以变成一个对象.NSInvocation对象在对象和对象之间和应用程序和应用程序 ...
- IOS NSInvocation用法简介
IOS NSInvocation用法简介 2012-10-25 19:59 来源:博客园 作者:csj007523 字号:T|T [摘要]在 iOS中可以直接调用某个对象的消息方式有两种,其中一种就是 ...
- NSInvocation Basics
In this article I'm going to cover the basics and usages of NSInvocation. What is NSInvocation? Appl ...
- NSInvocation的使用(转)
转载自:http://www.cnblogs.com/pengyingh/articles/2359199.html http://blog.iosxcode4.com/?p=125 在 iOS中可以 ...
- ios NSMethodSignature and NSInvocation 消息转发
1.首先获取消息转发时连个函数内部具体内容 MARK:这里是拿[@"xxxxx" length]调用拿来举例说明 (lldb) po signature <NSMethodS ...
- 利用NSInvocation对方法进行抽象,实现对方法的加锁
我们在实际开发中须要对离散的方式加锁实现线程安全,当然我们有多种实现方式,这仅仅是当中一种,使用起来比較方便 + (id)performSelectorWithTarget:(id)target se ...
- iOS NSInvocation的学习
用途: NSInvocation的作用和performSelector:withObject:的作用是一样的:用于iOS编程中调用某个对象的消息. performSelector:withObject ...
- 第16月第8天 NSInvocation存储 函数指针 va_arg lldb
1.NSInvocation存储 -(void)setInvok:(id)target sel:(SEL)sel key:(id)key { if(!target) return; NSMethodS ...
随机推荐
- element ui el-tree回显问题及提交问题(当后台返回的el-tree相关数组的时候,子菜单未全部选中,但是只要父级菜单的id在数组中,那么他的子菜单为全部选中状态)
1:问题原因:我们可能使用 this.$refs.tree.setCheckedKeys(this.defalutArr);或者使用:default-expanded-keys="treeD ...
- <数据结构>XDOJ321.高铁网络
问题与解答 描述: 国家建设高铁网络,网络由一些连接城市的高铁线路构成.现有高铁建设情况可列为一张统计表,表中列出了每一条高铁线路直接连接的两个城市.国家的建设目标是全国每两个城市之间都可以实现高铁交 ...
- 【jvm】04-我偷偷改了你编译后的class文件
[jvm]04-我偷偷改了你编译后的class文件 欢迎关注b站账号/公众号[六边形战士夏宁],一个要把各项指标拉满的男人.该文章已在github目录收录. 屏幕前的大帅比和大漂亮如果有帮助到你的话请 ...
- JZOJ5405 & AtCoder Grand Contest 001 F. Permutation
题目大意 给出一个长度为\(n\)的排列\(P\)与一个正整数\(k\). 你需要进行如下操作任意次, 使得排列\(P\)的字典序尽量小. 对于两个满足\(|i-j|>=k\) 且\(|P_i- ...
- quasar框架在store中使用router跳转页面报错
网上一通百度,终于在这篇博客中找到原因. https://www.cnblogs.com/remly/p/12995936.html 原因是: 在router中导出了一个工厂函数, 既然是一个函数, ...
- spring boot + thymeleaf +security自定义规则 的简单使用
1.前言 以前开发一直使用 springMVC模式开发 ,前端页面常使用 JSP ,现在html5淘汰了 ,要么使用html ,要么使用vue , 现在使用spring boot ,有必要总结一下 ...
- vue iview element-ui兼容IE11浏览器
首先安装babel-polyfill npm install babel-polyfill --save-dev 入口文件引用,在main.js中引用 import 'babel-polyfill' ...
- 关于less使用初学者常犯错误
1.多层嵌套 2.定义变量复用性不高 3.方法定义多余参数.
- 图形测试分析毫无头绪?HarmonyOS图形栈测试技术帮你解决
作者:huangran,图形图像技术专家 应用开发以后无法知道性能瓶颈的根因是什么?滑动卡顿.白块产生的原因是什么?代码写完之后,不知道如何优化让它表现地更好-- 我们发现,如今测试人员的需求已经不只 ...
- 关于MySQL中group by的一些问题的记录
only full group by问题的解约方案 这个报错的原因是,在SQL语句中,你查询的字段应该是你分组的依据,即select的column应该全部跟在group by之后.这个也和MySQL的 ...