Add MHMessageKit
to your Swift Package Dependencies.
Add github "KoCMoHaBTa/MHMessageKit"
to your Cartfile
, then Embed the framework directly into your project.
Add pod 'MHMessageKit'
to your Podfile
Add a submodule to your repostiroy, then Embed the framework directly into your project
Download, then Embed the framework directly into your project
You can use any of the above features independantly.
The defined NotificationMessage
protocol in conjuction with extensions to NotificationCenter
and NotificationQueue
will allow you send and receive custom strongly typed notifications.
NotificationMessage
NotificationCenter
- subscribe for receiving your custom messagesNotificationCenter
- post instances of your custom messagesNotificationQueue
- enque instances of your custom messagesYou know, you have to laways unsubscribe observers when you no logner need them, usually in dealloc.
And it is even more uncovenient when you use the block based API from NotificationCenter
- you have to store the observer reference and again unsubscribe it when your class will get deallocated.
Well, in order to save tons of boilerplate code - we introduce the weak observers. Basically you use the same API, but your observer gets unsibscibed automatically upon dealloc. This means that you don't have to care anymore about unsibscibing - just subscribe and thats it.
In order to take advantage of this feature - just use the methods added to NotificationCenter
:
addWeakObserver(_:selector:name:object:)
addWeakObserver(forName:object:queue:using:) -> NSObjectProtocol
addWeakObserver(forObject:queue:handler:) -> NSObjectProtocol
subscribe(_:) -> WeakMessageSubscription
In case you want to have an independant messaging abstraction - there is one for you if think that it suits you.
It is defined as following:
Message
- a type that can be send and received trough publishers and subscibersMessagePublisher
- a type that can send messagesMessageSubscriber
- a type that manage message subscriptionsMessageSubscription
- a type that represents a message subscriptionWeakMessageSubscription
- a type that represents a weak message subscriptionStaticMessageHandler
- a type that statically register and unregister subscriptionsStaticSubscriptionContainer
- a type that stores subscriptions staticallyStaticWeakSubscriptionContainer
- a type that stores weak subscriptions staticallyA default implementation using the Foundation's notification API is provided as following:
NotificationCenter: MessageSubscriber
NotificationCenter: MessagePublisher
NotificationQueue: MessagePublisher
This means that in order to use this infrastructur - you have to:
Message
protocolIn advance you could:
StaticMessageHandler
and StaticSubscriptionContainer
and/or StaticWeakSubscriptionContainer
link |
Stars: 0 |
Last commit: 1 year ago |
Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics