3

有很多資源的關於使用無可可用於從通過API網頁「拉」數據的目的,在網絡上,等最佳實踐使用反應可可通過REST API更新服務器數據

我喜歡MVVM方法,並試圖找出在本地對象更改時通過API發送更新的良好做法。

我懷疑這是別人優雅解決的問題。我認爲一個好方法是觀察本地數組對象,並在數據更改時適當地調用API調用。但是當對本地數據對象所做的更改是由用戶而不是服務器完成時,需要小心處理「反應」。

有沒有現有的資源可以指引我正確的方向?

回答

0

這是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); 
}];