RxEnumKit 是 EnumKit 的响应式扩展。它扩展了 ObservableType
和 SharedSequenceConvertibleType
以在处理枚举案例流时提供更多的灵活性。
使用 RxEnumKit,您将能够从流中的每个 CaseAccessible
枚举元素中提取关联值、映射、压缩映射、扁平映射、过滤和排除情况。
拥有一个 CaseAccessible
枚举和 Observables
enum MyEvent: CaseAccessible {
case eventA(String)
case eventB(foo: Int)
}
let observable: Observable<MyEvent>
使用 RxEnumKit,以下模式将变得可行
observable.capture(case: MyEvent.eventA)
.subscribe(onNext: { value in //String
...
})
observable.map(case: MyEvent.eventB, String.init)
.subscribe(onNext: { value in // String
...
})
要求
- Xcode 11
- Swift 5.1
安装
RxEnumKit 提供了 cocoapods 和 swiftPM。
通过 Cocoapods
# Podfile
use_frameworks!
target 'YOUR_TARGET_NAME' do
pod 'RxEnumKit', '~> 1.0.2'
end
替换 YOUR_TARGET_NAME
,然后在 Podfile
目录中输入以下内容:
$ pod install
通过 Swift Package Manager
创建一个 Package.swift
文件。
// swift-tools-version:5.0
import PackageDescription
let package = Package(
name: "YourProjectName",
dependencies: [
.package(url: "https://github.com/gringoireDM/RxEnumKit.git", from: "1.0.2")
],
targets: [
.target(name: "YourProjectName", dependencies: ["RxEnumKit"])
]
)
$ swift build