Няма описание

Ashley Mills b2de223e9d Merge pull request #23 from adityatrivedi/patch-1 преди 10 години
Reachability Sample d520664d8b Update sample app for Swift 1.2 преди 10 години
Reachability Test 79f8d2502f Add test harness app преди 11 години
.gitignore 79f8d2502f Add test harness app преди 11 години
LICENSE acc3ef30f8 Initial check in преди 11 години
README.md 7ff84c845e Make notification example code Swift 1.2 compliant преди 10 години
Reachability.swift ba64a753bb Allow the use of a different NSNotificationCenter преди 10 години
ReachabilitySwift.podspec 5c623877ca Update deployment targets in podspec преди 10 години

README.md

Reachability.swift

Replacement for Apple's Reachability re-written in Swift with closures

Inspired by https://github.com/tonymillion/Reachability

NOTES:

  • As of Swift 1.2, you cannot convert Swift closures into C-function pointers, meaning we can't set an SCNetworkReachabilityCallBack. To get around this, this reachability replacement uses a dispatch_source firing at 1/2 second intervals.

  • If an application has the privacy option “Use cellular data” turned off, the Reachability class still reports isReachable() to be true. There is currently no (non-private) API to detect this. If you need this feature, please raise file a bug report with Apple to get this fixed. See devforums thread for details: https://devforums.apple.com/message/1059332#1059332

Use

Just drop the Reachability.swift file into your project. That's it!

Example - closures

let reachability = Reachability.reachabilityForInternetConnection()

reachability.whenReachable = { reachability in
    if reachability.isReachableViaWiFi() {
        println("Reachable via WiFi")
    } else {
        println("Reachable via Cellular")
    }
}
reachability.whenUnreachable = { reachability in
    println("Not reachable")
}

reachability.startNotifier()

Example - notifications

let reachability = Reachability.reachabilityForInternetConnection()

NSNotificationCenter.defaultCenter().addObserver(self, selector: "reachabilityChanged:", name: ReachabilityChangedNotification, object: reachability)

reachability.startNotifier()

and

func reachabilityChanged(note: NSNotification) {

    let reachability = note.object as! Reachability

    if reachability.isReachable() {
        if reachability.isReachableViaWiFi() {
            println("Reachable via WiFi")
        } else {
            println("Reachable via Cellular")
        }
    } else {
        println("Not reachable")
    }
}

Want to help?

Got a bug fix, or a new feature? Create a pull request and go for it!

Let me know!

If you use Reachability.swift, please let me know about your app and I'll put a link here… and tell your friends!

Cheers, Ash