CXExtensions
CXExtensions 是一个对 Combine 和 CombineX 有用的扩展集合。
API
发布者
IgnoreError
忽略上游错误并完成。
// Output: (data: Data, response: URLResponse), Failure: URLError
let upstream = URLSession.shared.cx.dataTaskPublisher(for: url)
// Output: (data: Data, response: URLResponse), Failure: Never
let pub = upstream.ignoreError()
Cancellable
延迟自动取消
延迟后自动取消。
let delayedCancel = upstream
.sink { o in
}
.cancel(after .second(1), scheduler: mainScheduler)
安装
Swift包管理器
dependencies.append(
.package(url: "https://github.com/cx-org/CXExtensions", .branch("master"))
)
CocoaPods
pod 'CXExtensions', :git => 'https://github.com/cx-org/CXExtensions.git', :branch => 'master'
Carthage
github "cx-org/CXExtensions" "master"
与Combine一起使用
您可以通过将target的构建配置传递给USE_COMBINE
来将底层的依赖项改为Combine
。例如,如果您正在使用CocoaPods,可以像下面这样修改您的podfile
post_install do |installer|
installer.pods_project.targets.each do |target|
if target.name == 'CXExtensions'
target.build_configurations.each do |config|
config.build_settings['OTHER_SWIFT_FLAGS'] = '-DUSE_COMBINE'
end
end
end
end
如果您正在使用Carthage,您应该能够使用XCODE_XCCONFIG_FILE
来做这件事。