RACChannel:没有看到我预期的双向绑定

 红糖小丸子QQEasyg 发布于 2023-02-08 18:45

(也可以在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]];

我看到流动的变化的一个方向,从_ticker.accumulateEnabledself.paused,但变化self.paused不会流回_ticker.

我误解了RACChannel吗?它有什么用,这怎么不是预期的用途?

1 个回答
  • 我误解了如何使用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];
    

    (我仍然试图理解为什么skip:1是必要的,但没有它,RAC会使堆栈爆炸,所以我按照GitHub问题保留它.)

    2023-02-08 18:46 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有