博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS 使用宏定义函数和代码块
阅读量:6785 次
发布时间:2019-06-26

本文共 1160 字,大约阅读时间需要 3 分钟。

iOS使用宏定义函数和代码块

今天在开发过程中碰到一个问题:就是父类中要向外发送通知,然后子类中或者其他类中来接收它。当然一般是把它写到类方法中去,但是有个问题,就是如果调用的类不是它的子类,就不能直接调用,当然也可以采用静态方法实现,我这里主要是想用宏定义来实现,下面我分别介绍使用宏定义函数和定义代码块的方式进行,废话不多说了,直接上代码:

  • 使用宏定义函数实现
//定义#define SendNotification @"SendNotification"#define sendMessage(msg) \ ({\ dispatch_async(dispatch_get_main_queue(), ^{\ NSNotificationCenter* notificationCenter = [NSNotificationCenter defaultCenter];\ [notificationCenter postNotificationName:SendNotification object:nil userInfo:@{ @"msg":msg}];\ });\ }) //使用 sendMessage(@"发个消息试试"); //有返回的宏函数定义 #define getSum(a,b) \ ({\ (a+b);\ }) //使用 double sum = getSum(M_PI,M_E);
  • 使用宏定义代码块实现
//定义#define SendNotification @"SendNotification"#define sendMessage(msg) \ ^(){\ dispatch_async(dispatch_get_main_queue(), ^{\ NSNotificationCenter* notificationCenter = [NSNotificationCenter defaultCenter];\ [notificationCenter postNotificationName:SendNotification object:nil userInfo:@{ @"msg":msg}];\ });\ }() //使用 sendMessage(@"发个消息试试"); //有返回的宏代码块定义 #define getSum(a,b)\ ^(){\ return a+b;\ }() //使用 double sum = getSum(M_PI,M_E);
  • 写在最后,当时写的时候,想到了使用宏定义的方式,但是在网上找了一圈没有找到怎么使用宏来定义代码块和函数,于是自己通过尝试实现了,所以在这里Mark一下,希望能够帮到遇到同样问题的人,也为了以后自己忘了能够查到。

转载地址:http://xtbgo.baihongyu.com/

你可能感兴趣的文章
去年出货的工业机器人,超过1/3都跑来了中国
查看>>
Windows死机的话,可能的一些猫病
查看>>
作为架构师,你必需要搞清楚的概念:POJO、PO、DTO、DAO、BO、VO
查看>>
golang-web框架revel一个表单提交的总结
查看>>
PHP 根据IP获取地理位置
查看>>
如何设置同一单据的单据头字段各行合并显示吗?
查看>>
HAProxy负载均衡代理
查看>>
汇编中参数的传递和堆栈修正【转载】
查看>>
web安全实践系列导航
查看>>
[Oracle]GoldenGate官方文档
查看>>
第 42 章 WMware
查看>>
动感的网页相册
查看>>
Nginx的反向代理与负载均衡
查看>>
redis之(十四)redis的主从复制的原理
查看>>
Velocity入门指南
查看>>
ntp redhat
查看>>
sum(case when status=1 then 1 else 0 end) 的意思
查看>>
Win7硬盘安装方法
查看>>
python - 列表
查看>>
UIVisualEffectView用法
查看>>