CXCocoa 0.0.1-beta.3

CXCocoa 0.0.1-beta.3

luoxiu 维护。



 
依赖
CXFoundation~> 0.0.1-beta.5
CXCompatible~> 0.0.1-beta.4
 

CXCocoa 0.0.1-beta.3

  • 作者
  • Quentin Jin

CombineX.Cocoa(中文)

release install platform license dicord

注意

这个库仍然处于测试阶段,因此请不要在生产环境中使用!

🐱

什么是 CombineX.Cocoa

类似于 ReactiveCocoa 和 ReaciveSwift, RxCocoa 和 RxSwift,CXCocoa 是 CombineX 的衍生品。它为 Cocoa 框架提供 Combine 扩展,允许您以优雅的方式编写与 Cocoa 相关的异步代码。

其中包括但不限于:

  • MethodPublisher/DeallocatePublisher,通过方法替换截获方法调用
  • KVOPublisher,通过 KVO 机制观察属性变更
  • DelegateProxy,代理委托消息
  • UIKit 扩展(binder & property),订阅控件事件并绑定值
  • UIScheduler
  • ...

您可以在 CombineXCombine 之间自由切换底层依赖。

示例

安装

CocoaPods

# forcing master branches for now.
pod 'CombineX', :git => 'https://github.com/cx-org/CombineX.git', :branch => 'master'
pod 'CXFoundation', :git => 'https://github.com/cx-org/CXFoundation.git', :branch => 'master'
  

pod 'CXCocoa', :git => 'https://github.com/cx-org/CXCocoa.git', :branch => 'master'

Carthage

github "cx-org/CombineX" "master"
github "cx-org/CXFoundation" "master"

github "cx-org/CXCocoa" "master"

什么是Combine/CombineX

点击 此处 查看详细信息。

贡献

欢迎!我们随时欢迎各种形式的贡献!

您可以为以下方面贡献力量:

  1. 添加更多的控制扩展,特别是为macOS控件。
  2. 添加文档。
  3. 提出您的建议(新功能、改进、错误等)
  4. Star!然后告诉您的朋友们!

因为CombineX的源代码仍然处于测试阶段,如果您在这个库中遇到奇怪的问题,那么它可能与上游代码有偏差。🤣

与Combine一起使用

您可以通过将其传递给目标的构建配置中的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来完成这项操作。

致谢

该库的实现参考了ReactiveCocoaRxCocoa,特别是ReactiveCocoa,Objective-C部分基本全部修改自其源代码,真心感谢他们出色的作品!