我可以使用返回值的RACSignal实现dataSource方法。
我不喜欢这样的事情 -
[self rac_signalForSelector:@selector(tableView:numberOfRowsInSection:)]{
return @10;}];
如何使用处理信号时需要返回值的方法?
答案 0 :(得分:8)
ReactiveCocoa与所有基于Reactive Extensions的框架一样,是围绕基于推送的API 设计的,用于对一系列值进行操作。也就是说,你有一些价值来源,然后你使用信号组合来做出反应到达新值。
另一方面,"数据源"许多Cocoa框架共有的模式要求您提供基于拉式的API 。也就是说,您拥有一些值源,并通过实现-tableView:numberOfRowsInSection:
等查询方法将这些值提供给其他对象。当需要知道指定节中的表行数时,其他对象通常会同步调用这些方法。
这两个概念彼此之间存在很大差异。使用ReactiveCocoa"很难实现数据源。 (尽管ReactiveCocoa肯定对您应用的其他区域有用)。
答案 1 :(得分:3)
RAC没有提供定义返回值的方法的能力。相反,您必须实现该方法以返回适当的值,并且可以使用该方法调用-rac_signalForSelector:
来获取信号。事情是,为什么你想要一个像numberOfRowsInSection:
?