//封装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的基本使用的更多相关文章

  1. Objective-C中NSInvocation的使用

    OC中调用方法某个对象的消息呦两种方式: #1. performanceSelector: withObject: #2. NSInvocation. 第一个PerformaceSelector比较常 ...

  2. iOS开发——网络篇——UIWebview基本使用,NSInvocation(封装类),NSMethodSignature(签名),JavaScript,抛异常,消除警告

    一.UIWebView简介 1.UIWebView什么是UIWebViewUIWebView是iOS内置的浏览器控件系统自带的Safari浏览器就是通过UIWebView实现的 UIWebView不但 ...

  3. NSInvocation

    NSInvocation 基本简介 NSInvocation是一个静态描绘的OC消息,也就是说,它是一个动作,这个动作可以变成一个对象.NSInvocation对象在对象和对象之间和应用程序和应用程序 ...

  4. IOS NSInvocation用法简介

    IOS NSInvocation用法简介 2012-10-25 19:59 来源:博客园 作者:csj007523 字号:T|T [摘要]在 iOS中可以直接调用某个对象的消息方式有两种,其中一种就是 ...

  5. NSInvocation Basics

    In this article I'm going to cover the basics and usages of NSInvocation. What is NSInvocation? Appl ...

  6. NSInvocation的使用(转)

    转载自:http://www.cnblogs.com/pengyingh/articles/2359199.html http://blog.iosxcode4.com/?p=125 在 iOS中可以 ...

  7. ios NSMethodSignature and NSInvocation 消息转发

    1.首先获取消息转发时连个函数内部具体内容 MARK:这里是拿[@"xxxxx" length]调用拿来举例说明 (lldb) po signature <NSMethodS ...

  8. 利用NSInvocation对方法进行抽象,实现对方法的加锁

    我们在实际开发中须要对离散的方式加锁实现线程安全,当然我们有多种实现方式,这仅仅是当中一种,使用起来比較方便 + (id)performSelectorWithTarget:(id)target se ...

  9. iOS NSInvocation的学习

    用途: NSInvocation的作用和performSelector:withObject:的作用是一样的:用于iOS编程中调用某个对象的消息. performSelector:withObject ...

  10. 第16月第8天 NSInvocation存储 函数指针 va_arg lldb

    1.NSInvocation存储 -(void)setInvok:(id)target sel:(SEL)sel key:(id)key { if(!target) return; NSMethodS ...

随机推荐

  1. Java 16 中新增的 Stream 接口的一些思考

    这里先提一个题外话,如果想看 JDK 不同版本之间有何差异,增加或者删除了哪些 API,可以通过下面这个链接查看: https://javaalmanac.io/jdk/17/apidiff/11/ ...

  2. 【JAVA今法修真】 第八章 仙道万维网 圣地元宇宙

    您好,我是南橘,万法仙门的掌门,刚刚从九州世界穿越到地球,因为时空乱流的影响导致我的法力全失,现在不得不通过这个平台向广大修真天才们借去力量.你们的每一个点赞,每一个关注都是让我回到九州世界的助力,兄 ...

  3. mysql编译报错

    1.make报错现象 Warning: Bison executable not found in PATH 解决办法 yum -y install bison 2.make报错现象 ake Erro ...

  4. [ SQLAlchemy ] 经验总结、QA

    1.filter 和 filter_by [ 共同点 ]:查询后,用于过滤数据 [ 不同点 ]: 1.filter:过滤查询后的数据,用SQL表达式 session.query(MyClass).fi ...

  5. Word2010制作日历

    原文: https://www.toutiao.com/i6494876164157342222/ 最终效果: 设置页面纸张为"横向". 选择"页面布局"选项卡 ...

  6. 论文翻译:2021_AEC IN A NETSHELL: ON TARGET AND TOPOLOGY CHOICES FOR FCRN ACOUSTIC ECHO CANCELLATION

    论文地址:https://ieeexploreieee.53yu.com/abstract/document/9414715 Netshell 中的 AEC:关于 FCRN 声学回声消除的目标和拓扑选 ...

  7. 使用Kubernetes两年来的7大经验教训

    来源:分布式实验室译者:冯旭松在Ridecell公司管理基础设施团队几年后,我想在停下来休息时记录一些想法和经验教训. 1Kubernetes不仅仅是炒作 我在Kubernetes领域里活跃了很久,所 ...

  8. 浅讲EF高级用法之自定义函数

    介绍 好久没给大家更新文章了,前2个月因家庭原因回到青岛,比较忙所以没有什么时间给大家更新知识分享,这2个月在和同事一起做项目,发现了很多好意思的东西拿出来给大家讲一讲. 正文 大家先来下面这幅图,这 ...

  9. dart系列之:和null说再见,null使用最佳实践

    目录 简介 不需要初始化对象为null null的三元操作符 如果在使用中需要判断类型是否为空,则不要使用late 本地变量的类型提升 总结 简介 null可能是大家在编写程序中最为头疼的一个东西,稍 ...

  10. .NET Core 自定义中间件 Middleware

    引言 很多看了上一章的朋友私信博主,问如何自定义,自己的中间件(Middleware),毕竟在实际的项目中,大家会有很多需求要用到中间件,比如防盗链.缓存.日志等等功能,于是博主这边就简单讲解一下框架 ...