gpt4 book ai didi

ios - 使用 ReactiveCocoa 每小时执行一次操作

转载 作者:技术小花猫 更新时间:2023-10-29 10:44:04 25 4
gpt4 key购买 nike

试图跟随 best practices ReactiveCocoa 每小时更新我的​​ UI。这是我得到的:

NSDateComponents *components = [[[NSCalendar sharedCalendar] calendar] components:NSMinuteCalendarUnit fromDate:[NSDate date]];
// Generalization, I know (not every hour has 60 minutes, but bear with me).
NSInteger minutesToNextHour = 60 - components.minute;

RACSubject *updateEventSignal = [RACSubject subject];
[updateEventSignal subscribeNext:^(NSDate *now) {
// Update some UI
}];

[[[RACSignal interval:(60 * minutesToNextHour)] take:1] subscribeNext:^(id x) {
[updateEventSignal sendNext:x];
[[RACSignal interval:3600] subscribeNext:^(id x) {
[updateEventSignal sendNext:x];
}];
}];

这有一些明显的缺陷:手动订阅和发送,而且“感觉不对”。关于如何使其更具“ react 性”的任何想法?

最佳答案

您可以使用完全普通的运算符来做到这一点。这只是将两个间隔链接在一起同时仍然通过它们的两个值的问题,这正是 -concat:

我会重写主题如下:

RACSignal *updateEventSignal = [[[RACSignal
interval:(60 * minutesToNextHour)]
take:1]
concat:[RACSignal interval:3600]];

这可能不会为您提供 super 精确的精度(因为两个信号之间可能存在微小的打嗝),但对于任何 UI 工作来说它应该足够好™。

关于ios - 使用 ReactiveCocoa 每小时执行一次操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16523571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com