(也可以在GitHub上公开评论来自ReactiveCocoa的人.)
我在一个非常简单的尝试ReactiveCocoa RACTest(源是在GitHub上)应用程序试图通过实际使用它坚定了我的理论认识.
我想,我有一个RACChannel,它提供了一个ed l值和我指定的任何参数之间的双向绑定.RAC()RACChannel
我的用法如下:
// Map the ticker's accumulationEnabled property to self.paused.
RAC(self, paused) = [RACChannelTo(_ticker, accumulateEnabled) deliverOn:[RACScheduler mainThreadScheduler]];
Run Code Online (Sandbox Code Playgroud)
我看到流动的变化的一个方向,从_ticker.accumulateEnabled到self.paused,但变化self.paused不会流回_ticker.
我误解了RACChannel吗?它有什么用,这怎么不是预期的用途?
cbo*_*wns 10
我误解了如何使用RACChannel.RACChannelTo在作业的两侧使用按预期工作:
RACChannelTo(self, paused) = RACChannelTo(_ticker, accumulateEnabled);
更改的主线程交付self.paused有点复杂,但并不可怕:
RACChannelTerminal *accumulateChannel = RACChannelTo(_ticker, accumulateEnabled);
RAC(self, paused) = [accumulateChannel deliverOn:RACScheduler.mainThreadScheduler];
[[RACObserve(self, paused) skip:1] subscribe:accumulateChannel];
Run Code Online (Sandbox Code Playgroud)
(我仍然试图理解为什么skip:1是必要的,但没有它,RAC会使堆栈爆炸,所以我按照GitHub问题保留它.)
| 归档时间: |
|
| 查看次数: |
1414 次 |
| 最近记录: |