π Give this repo a star and help its development grow! π
MessageBox is a simple concept for decoupling entities. Think of it as notifications but the opposite.
- For example entity A can place a message that entity B can read whenever suitable β not at once like notifications.
- For example a view controller would like to talk to another view controller, but you don't want to create a strong or weak relationship between them.
- This concept is highly flexible as it allows you to change which entity should put & get a message, without having to refactor your code & architecture.
let messageBox = MessageBox()
// set
messageBox.setObject("TestObject1", forKey:"TestKey1")
// get
// but don't remove it, keep it stored, so that it can still be retrieved later
let someObject = messageBox.getObject(forKey:"TestKey1", removeIfFound:false)
// get
// and remove it
let someObject = messageBox.getObject(forKey:"TestKey1", removeIfFound:true)
- Version 1.2 updates for Swift 4.2.
- Version 1.1.1 adds documentation.
- Swift Version 4.2
- Xcode 10
There is no framework/library distibution, I recommend that you simply add the MessageBox.swift
to your project. As this will allow you to easily find & read the MessageBox API, and it will also allow MessageBox to compile using your apps build settings.
- Using Git:
git clone https://github.com/MKGitHub/MessageBox.git
then addMessageBox.swift
to your Xcode project. - Manual Way: Add
MessageBox.swift
to your Xcode project. - Using Carthage: In your Cartfile add
github "MKGitHub/MessageBox" ~> 1.2
thencarthage update --no-build
then addMessageBox.swift
to your Xcode project. - Using Swift Package Manager: swift-tools-version:4.0
- CocoaPods support has been removed! πππ Never use CocoaPods! π
Go to the documentation index page.
MessageBox is used in production in the following apps/games (that I'm aware of), these apps are together used by millions of users. Please let me know if you use MessageBox.
- McDonald's apps
https://github.com/MKGitHub/MessageBox-Concept
Copyright 2016/2017/2018 Mohsan Khan
Licensed under the Apache License, Version 2.0.