c++ - ReactiveCocoa 可以与纯 c++ ViewModel 一起使用吗?

标签 c++ objective-c reactive-cocoa

动机是跨平台(Android、Windows Phone)共享 View 模型。

例如,考虑:

RAC(self.nameField,text) = RACObserve(self.viewModel, playerName);

如果self.viewModel是纯C++(11)怎么办?

显然 C++ 没有属性,但也许可以通过某种方式使其工作?或者说ReactiveCocoa两边都耦合到了Objective-C(自然在UI端耦合没什么大不了的,因为不管怎样,相关环境都必须使用其他一些绑定(bind)机制)。

最佳答案

Obviously C++ doesn't have properties, but perhaps it can be made to work somehow?

将 C++ 对象包装在 Objective-C 包装器中。

Or is ReactiveCocoa coupled to Objective-C on both sides (naturally being coupled on the UI side is no big deal, as some other binding mechanism would have to be used for the relevant environment regardless).

ReactiveCocoa 中的 UIKit 和 AppKit 有一些特定于 UI 的扩展,但库的核心根本不依赖或不了解“UI 端”,但 ReactiveCocoa 2.x 中的大部分功能依赖于“UI 端” Objective-C 对象中的运行时特性。

RACObserve() 只是最终调用 -[NSObject rac_observeKeyPath:options:observer:block:] 的方法的宏,该方法本身使用 Objective -C 专用技术称为 Key Value Observing 。 C++ 对象不支持开箱即用的 KVO,因此它们不能与 RACObserve() 开箱即用。

关于c++ - ReactiveCocoa 可以与纯 c++ ViewModel 一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24850725/

相关文章:

ios - 对象 C : RACObserve rapidly changing values (RACSignal for AFHTTPRequestOperation)

ios - Swift 3 中的 rac_textSignal

java - 如何通过代码在位图上应用蓝色到黄色渐变,亮度作为因素

c++ - 线程安全 MPI 通信

c++ - 如何在 C++ 中通过表达式定义常量?

ios - 如何获取NSDecimal舍入到最接近的整数值?

iphone - 通过按钮重置应用程序

iphone - 找不到协议(protocol)声明自定义协议(protocol)委托(delegate) iphone

c++ - 具有管理员权限的 shellexecute 不会结束

ios - 最新的 ReactiveCocoa Carthage 错误 : No such module 'Result'