RxEnumKit

Build Status Swift Package Manager cocoapods

RxEnumKit 是 EnumKit 的响应式扩展。它扩展了 ObservableTypeSharedSequenceConvertibleType,以便在使用枚举案例流时增加灵活性。

使用 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 提供 cocoapodsswiftPM

通过 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