Allows publish-subscribe-style communication between components without requiring the components to explicitly be aware of each other
- simplifies the communication between components
- decouples event senders and receivers
- avoids complex and error-prone dependencies and life cycle issues
- makes your code simpler
- is fast
- is tiny
- Thread-safe
pod 'SwiftEventBus', :git => 'https://github.com/cesarferreira/SwiftEventBus.git'
Subscribers implement event handling methods that will be called when an event is received.
SwiftEventBus.onMainThread(target, name: "someEventName") { result in
// UI thread
}
// or
SwiftEventBus.onBackgroundThread(target, name:"someEventName") { result in
// API Access
}
Post an event from any part of your code. All subscribers matching the event type will receive it.
SwiftEventBus.post("someEventName")
Post event
SwiftEventBus.post("personFetchEvent", sender: Person(name:"john doe"))
Expecting parameters
SwiftEventBus.onMainThread(target, name:"personFetchEvent") { result in
let person : Person = result.object as Person
println(person.name) // will output "john doe"
}
Remove all the observers from the target
SwiftEventBus.unregister(target)
Remove observers of the same name from the target
SwiftEventBus.unregister(target, "someEventName")