RxEnumKit 是 EnumKit 的响应式扩展。它扩展了 ObservableType
和 SharedSequenceConvertibleType
,以便在使用枚举案例流时增加灵活性。
使用 RxEnumKit,您将能够从流的每个 CaseAccessible
枚举元素中提取关联值,进行 map、compactMap、flatMap、filter 和排除案例操作。
拥有一个 CaseAccessible
枚举和一个 Observable
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
...
})
RxEnumKit 提供 cocoapods 和 swiftPM
# Podfile
use_frameworks!
target 'YOUR_TARGET_NAME' do
pod 'RxEnumKit', '~> 1.0.2'
end
替换 YOUR_TARGET_NAME
,然后在 Podfile
目录下,输入
$ pod install
创建一个 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