当前位置:   article > 正文

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

swifteventbus

SwiftEventBus

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

安装依赖
# 发布订阅框架
# https:https://github.com/cesarferreira/SwiftEventBus
pod "SwiftEventBus"
  • 1
  • 2
  • 3
优点
  • 简化组件间的通信
  • 解耦事件发送方和接收方
  • 避免复杂的、容易出错的依赖关系和生命周期问题
  • 使您的代码更简单、快、小
  • 线程安全的
  • 异步发送
使用
1、发送事件

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

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

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

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

// or

SwiftEventBus.onBackgroundThread(target, name:"someEventName") { result in
    // API Access
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
3、取消注册

移除目标上的所有观察者

SwiftEventBus.unregister(target)
  • 1

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

SwiftEventBus.unregister(target, "someEventName")
  • 1
参数
1、Post event
SwiftEventBus.post("personFetchEvent", sender: Person(name:"john doe"))
  • 1
2、Expecting parameters
SwiftEventBus.onMainThread(target, name:"personFetchEvent") { result in
    let person : Person = result.object as Person
    println(person.name) // will output "john doe"
}
  • 1
  • 2
  • 3
  • 4
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号