通知在iOS中很多人用过,挺麻烦的,还耗费性能,其实就是个消息发送,没有依赖关系的模块可以消息发送,一个地方发送消息,多个地方可以接收消息,用闭包和单例就能取代通知,用下面的方法,很简单的就搞定任何地方消息发送和接收.
- 用闭包只能一对一发送消息,最后一次给闭包赋值的地方能接收到消息,所以我们可以多建立几个闭包,发送到不同的地方.接收地方接收的代码执行过一次,并且所在控制器没有销毁,发消息时候就可以收到消息.
- 控制器销毁时候可以在deinit方法里面用闭包=nil销毁,不销毁也费不了多少内存,没啥影响。
建立一个消息发送工具类
class MFSendAccecptMsgTool: NSObject {
static let shared: MFSendAccecptMsgTool = MFSendAccecptMsgTool()
闭包
var sendMsgClosure1: (( _ message: String)->())?
var sendMsgClosure2: (( _ message: String)->())?
//消息发送
> func sendMessage(message: String){
sendMsgClosure1?(message)
sendMsgClosure2?(message)
}
用法如下
消息发送
MFSendAccecptMsgTool.shared.sendMessage(message: "price.2000")
消息接收
- 在第一个需要接收这个消息的地方
MFSendAccecptMsgTool.shared.sendMsgClosure1 = {(message: String) in
print("message 111",message)
} - 在第二个需要接收这个消息的地方
MFSendAccecptMsgTool.shared.sendMsgClosure2 = {(message: String) in
print("message 222",message)
}
网友评论