当前位置: 首页 > 工具软件 > SwiftEventBus > 使用案例 >

iOS开发之SwiftEventBus发布-订阅通信

龙俊良
2023-12-01

SwiftEventBus

允许组件之间进行发布-订阅样式的通信,而不需要组件显式地相互感知。也就是说可以实现类似vue父子组件传数据。

安装依赖

# 发布订阅框架
# https:https://github.com/cesarferreira/SwiftEventBus
pod "SwiftEventBus"

优点

  • 简化组件间的通信
  • 解耦事件发送方和接收方
  • 避免复杂的、容易出错的依赖关系和生命周期问题
  • 使您的代码更简单、快、小
  • 线程安全的
  • 异步发送

使用

1、发送事件

从代码的任何部分发送一个事件。所有匹配事件类型的订阅者都将收到它。

SwiftEventBus.post("someEventName")
2、接收事件

订阅服务器实现将在接收到事件时调用的事件处理方法。

SwiftEventBus.onMainThread(target, name: "someEventName") { result in
    // UI thread
}

// or

SwiftEventBus.onBackgroundThread(target, name:"someEventName") { result in
    // API Access
}
3、取消注册

移除目标上的所有观察者

SwiftEventBus.unregister(target)

从目标中移除同名的观察者

SwiftEventBus.unregister(target, "someEventName")

参数

1、Post event
SwiftEventBus.post("personFetchEvent", sender: Person(name:"john doe"))
2、Expecting parameters
SwiftEventBus.onMainThread(target, name:"personFetchEvent") { result in
    let person : Person = result.object as Person
    println(person.name) // will output "john doe"
}
 类似资料: