Latest 1.0
Homepage https://github.com/nixzhu/Wormhole
License MIT
Platforms ios 8.0, requires ARC
Authors

Wormhole Banner

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.

Example

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 的改写之旅

Installation

CocoaPods

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.

Credits

Thanks to Lex Tang design the logo banner.

License

Wormhole is available under the MIT license. See the LICENSE file for more info.

Latest podspec

{
    "name": "Wormhole",
    "version": "1.0",
    "summary": "A more elegant way for message passing between iOS apps and extensions.",
    "description": "                   Wormhole is not just a Swift port of MMWormhole but with better API and use logic.n                   You can remove any a listener from it separately.n",
    "homepage": "https://github.com/nixzhu/Wormhole",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    },
    "authors": {
        "nixzhu": "[email protected]"
    },
    "social_media_url": "https://twitter.com/nixzhu",
    "platforms": {
        "ios": "8.0"
    },
    "source": {
        "git": "https://github.com/nixzhu/Wormhole.git",
        "tag": "1.0"
    },
    "source_files": "Wormhole/*.swift",
    "requires_arc": true
}

Pin It on Pinterest

Share This