iOS 使用宏定义函数和代码块
2023-09-11 14:17:57 时间
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一下,希望能够帮到遇到同样问题的人,也为了以后自己忘了能够查到。
相关文章
- iOS调用系统自带地图导航
- iOS版 hello,world版本2
- iOS 11开发教程(十八)iOS11应用视图之使用代码添加按钮
- iOS 11开发教程(十四)iOS11应用代码添加视图
- Visual Studio找不到iOS模拟器
- Xamarin.Forms教程下载安装Xamarin.iOS
- iOS 9音频应用播放音频之第一个ios9音频实例2
- iOS系统声音服务(System Sound Services)
- ios蓝牙开发(二)ios连接外设的代码实现
- iOS代码添加视图约束
- iOS开发UI篇—ios应用数据存储方式(归档)
- [iOS]简单的APP引导页的实现 (Swift)
- 下一代 iOS 应用的低代码开发平台哪个最厉害,Flutter vs Swift
- RGUIKit 现代 iOS 声明式 UI 框架 ,它是SwiftUI的挑战者还是过渡产品?
- iOS SwiftUI以编程方式推送和弹出视图Push和Pop(教程含代码)
- 如何使用 flutter 构建操纵杆,代码适用于 Android、iOS或 Web 浏览器
- iOS H5容器的一些探究(一):UIWebView和WKWebView的比较和选择
- iOS页面间传值的一些方式总结
- 一行代码实现iOS序列化与反序列化(runtime)
- iOS开发UI篇—ios应用数据存储方式(归档)
- iOS 开发-教大家如何使用github客户端上传自己的代码到github网站
- iOS开发 - 打开文件后进行文件分享(QLPreviewController)
- iOS-横竖屏管理,支持所有方向旋转时用代码控制允许旋转&不允许旋转
- iOS开发-使用友盟推送开发环境测试推送一定要添加测试设备
- iOS - Block产生Memory Leaks循环引用导致的内存泄漏以及解决方案
- IOS开发之功能模块--自定义导航控制器类常用自定义的代码
- iOS 获取屏幕的朝向