Wormhole is not just a Swift port of MMWormhole but with better API and use logic. You can remove any a listener from it separately.
In WatchKit extension, passing a message:
import Wormhole
let wormhole = Wormhole(appGroupIdentifier: "group.com.nixWork.Wormhole", messageDirectoryName: "Wormhole")
wormhole.passMessage(NSNumber(bool: lightState), withIdentifier: "lightState")
In App, make a listener and listen a message:
import Wormhole
let wormhole = Wormhole(appGroupIdentifier: "group.com.nixWork.Wormhole", messageDirectoryName: "Wormhole")
lazy var lightStateListener: Wormhole.Listener = {
let action: Wormhole.Listener.Action = { [unowned self] message in
if let lightState = message as? NSNumber {
self.lightStateLabel.text = lightState.boolValue ? "Light On" : "Light Off"
}
}
let listener = Wormhole.Listener(name: "lightStateLabel", action: action)
return listener
}()
wormhole.bindListener(lightStateListener, forMessageWithIdentifier: "lightState")
Now easy to remove a listener:
wormhole.removeListener(lightStateListener, forMessageWithIdentifier: "lightState")
or
wormhole.removeListenerByName("lightStateLabel", forMessageWithIdentifier: "lightState")
For more information, see the demo.
另有中文介绍:再造虫洞:一次 Objective-C 到 Swift 的改写之旅
CocoaPods is a dependency manager for Cocoa projects.
CocoaPods 0.36 adds supports for Swift and embedded frameworks. You can install it with the following command:
$ [sudo] gem install cocoapods
To integrate Wormhole into your Xcode project using CocoaPods, specify it in your Podfile
:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!
pod 'Wormhole', '~> 1.0'
Then, run the following command:
$ pod install
You should open the {Project}.xcworkspace
instead of the {Project}.xcodeproj
after you installed anything from CocoaPods.
For more information about how to use CocoaPods, I suggest this tutorial.
Thanks to Lex Tang design the logo banner.
Wormhole is available under the MIT license. See the LICENSE file for more info.