本篇博客我們就來聊一下combineLatest()的使用以及具體的實現(xiàn)方式。在之前的《iOS開發(fā)之ReactiveCocoa下的MVVM》的博客中我們已經(jīng)聊過combineLatest()的用法,雖然是使用老版本的ReactiveCocoaObjective-C語言介紹的,不過使用原理上都是一致的。都是將兩個信號量進行合并,當其中一個信號量發(fā)出Value事件時,如果另一個信號量之前也發(fā)送過Value事件,那么就取出最后一個事件的Value值與當前發(fā)送的事件值進行合并,然后將合并后的值發(fā)送給新的信號量的觀察者。如果其中一個未發(fā)送過任何Value,那么將不會向合并后的信號量的觀察者發(fā)送事件。下方會進行詳細的敘述。

下面我們就來仔細的聊一下combineLatest()的使用方式、具體的代碼實現(xiàn)以及合并信號量的工作原理。下方的使用示例我們還是與《iOS開發(fā)之ReactiveCocoa下的MVVM》這篇博客中聊combineLatest()時使用是示例相同,只不過我們是使用的Swift語言寫的,詳情如下。

 

一、combineLatest()使用

下方代碼片段是combineLatest()使用方式,介紹如下: