PublisherKit 提供了一个声明式的 Swift API,用于处理随时间推移的异步事件。它是 Apple Combine Framework 的开源版本,并添加了许多其他功能。
该项目的目标是提供一个兼容、可靠且高效的 Combine Framework 实现,可在早于 macOS 10.15、iOS 13、tvOS 13 和 watchOS 6 的 Apple 操作系统上使用。
要了解有关 Combine Framework 的更多信息,请参阅 Apple 的文档 此处。
要使用 Swift Package Manager 将 PublisherKit 集成到您的项目中,您可以将该库添加为 Xcode(11 及以上版本)中的依赖项 – 请参阅文档。软件包存储库 URL 是
https://github.com/ragzy15/PublisherKit.git
或者,您也可以在您的 Package.swift
文件中将 PublisherKit 添加为依赖项。例如
// swift-tools-version:5.1
// The swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription
let package = Package(
name: "YourPackage",
products: [
.library(
name: "YourPackage",
targets: ["YourPackage"]),
],
dependencies: [
.package(url: "https://github.com/ragzy15/PublisherKit.git", from: "4.0.2"),
],
targets: [
.target(
name: "YourPackage",
dependencies: ["PublisherKit"]),
]
)
您可以通过使用 Xcode 内置的 swift package manager 进行安装,或者克隆存储库并将子项目添加到您的项目中。
CocoaPods 是 Cocoa 项目的依赖项管理器。
如果您尚未安装 Cocoapods gem,请运行以下命令
$ gem install cocoapods
要使用 CocoaPods 将 PublisherKit 集成到您的 Xcode 项目中,请在您的 Podfile
中指定它
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '10.0'
use_frameworks!
pod 'PublisherKit', '~> 4.0.2'
然后,运行以下命令
$ pod install
Carthage 是一个去中心化的依赖项管理器,可以自动执行将框架添加到应用程序的过程。
您可以使用 Homebrew 安装 Carthage,使用以下命令
$ brew update
$ brew install carthage
要使用 Carthage 将 PublisherKit 集成到您的 Xcode 项目中,请在您的 Cartfile
中指定它
github "ragzy15/PublisherKit"
searchTextField.textDidChangePublisher
.debounce(for: .milliseconds(300), scheduler: DispatchQueue.main)
.compactMap { (text) -> String? in
text.isEmpty ? nil : text
}
.removeDuplicates()
.flatMap { (text) -> AnyPublisher<SearchResults, Never> in
self.search(with: text)
}
.receive(on: DispatchQueue.main)
.sink { (results) in
print(results)
}
.store(in: &cancellables)
还包含一个演示项目。
谢谢 ;)