您好,欢迎来到二三娱乐。
搜索
您的当前位置:首页iOS用闭包(Block)代替通知(NotificationCe

iOS用闭包(Block)代替通知(NotificationCe

来源:二三娱乐

通知在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)
}

Copyright © 2019- yule263.com 版权所有 湘ICP备2023023988号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务