Reachability.swift
Reachability.swift 是 Apple 的 Reachability 示例的替代品,使用闭包重写为 Swift。
它兼容 iOS (8.0 - 12.0),OSX (10.9 - 10.14) 和 tvOS (9.0 - 12.0)
灵感来自 https://github.com/tonymillion/Reachability
支持 Reachability.swift
Maintaining Reachability.swift is time-consuming. Updates, reviewing pull requests, responding to issues, and answering emails all take time.
If you're an iOS developer looking for a quick and easy way to create App Store screenshots, please try out my app Screenshot Producer…
设备 |
布局 | 复制 | 本地化 | 导出 |
---|---|---|---|---|
别忘了 ★ 该仓库。这将增加其可见性,并鼓励他人贡献力量。
谢谢,Ash
遇到问题?
在提出问题之前,请阅读https://github.com/ashleymills/Reachability.swift/blob/master/CONTRIBUTING.md。
安装
手动安装
只需将 Reachability.swift 文件放入您的项目中即可!这就是全部!
CocoaPods
CocoaPods 是 Cocoa 项目的依赖管理工具。要使用 CocoaPods 安装 Reachability.swift:
-
确保已安装 CocoaPods。(见 安装指南)。
-
更新您的 Podfile,包含以下内容
use_frameworks! pod 'ReachabilitySwift'
-
运行
pod install
。
- 在您的代码中按照如下方式导入 Reachability:
import Reachability
Carthage
Carthage 是一个分散式的依赖管理工具,它构建您的依赖和提供二进制框架。要使用 Carthage 安装 Reachability.swift:
- 通过 Homebrew 安装 Carthage。
$ brew update
$ brew install carthage
-
将
github "ashleymills/Reachability.swift"
添加到您的 Cartfile。 -
运行
carthage update
。 -
将
Reachability.framework
从Carthage/Build/iOS/
目录拖动到 Xcode 项目General
设置的Linked Frameworks and Libraries
部分。 -
将
$(SRCROOT)/Carthage/Build/iOS/Reachability.framework
添加到 Carthage 的运行脚本阶段的Input Files
。 -
在您的代码中按照如下方式导入 Reachability:
import Reachability
示例 - 闭包
注意:所有闭包都在 主线程 上执行。
//declare this property where it won't go out of scope relative to your listener
let reachability = Reachability()!
reachability.whenReachable = { reachability in
if reachability.connection == .wifi {
print("Reachable via WiFi")
} else {
print("Reachable via Cellular")
}
}
reachability.whenUnreachable = { _ in
print("Not reachable")
}
do {
try reachability.startNotifier()
} catch {
print("Unable to start notifier")
}
以及停止通知
reachability.stopNotifier()
示例 - 通知
注意:所有通知都是在主队列上发送的。
//declare this property where it won't go out of scope relative to your listener
let reachability = Reachability()!
//declare this inside of viewWillAppear
NotificationCenter.default.addObserver(self, selector: #selector(reachabilityChanged(note:)), name: .reachabilityChanged, object: reachability)
do{
try reachability.startNotifier()
}catch{
print("could not start reachability notifier")
}
并且
@objc func reachabilityChanged(note: Notification) {
let reachability = note.object as! Reachability
switch reachability.connection {
case .wifi:
print("Reachable via WiFi")
case .cellular:
print("Reachable via Cellular")
case .unavailable:
print("Network not reachable")
}
}
以及停止通知
reachability.stopNotifier()
NotificationCenter.default.removeObserver(self, name: .reachabilityChanged, object: reachability)
想帮忙吗?
修复了一个错误或有新功能?创建一个拉取请求并尝试一下!
告诉我!
如果你使用 Reachability.swift,请告诉我你的应用,我将在这里添加链接并告诉你的朋友们!
干杯,Ash