這是Andre Staltz寫的一本很棒的書,它解釋了很多被動的設計模式,並給出了一些非常可靠的例子:The introduction to Reactive Programming you've been missing。
RxJS和ReactiveCocoa都是基於微軟的RxObservable框架,所以它們的功能實際上有相同的名稱,你從這本書學到的大部分內容都可以轉移到任何基於RxObservable的庫上。
在約發送更新針對您的問題,當對象發生變化,一個(非常簡單)的方式來做到這一點在RAC會是這樣:
@weakify(self)
[[[[self rac_signalForSelector:@selector(addObjectToArrayBecauseTheUserWantsTo:)]
mapReplace:self.arrayOfObjects]
flattenMap:^RACStream *(NSArray * objects) {
@strongify(self)
return [self.model sendObjectsToServerAndRetrieveResponse:objects];
}] subscribeNext:^(id response) {
NSLog(@"Response from server: %@", response);
}];