本篇博客我們就來聊一下combineLatest()的使用以及具體的實(shí)現(xiàn)方式。在之前的《iOS開發(fā)之ReactiveCocoa下的MVVM》的博客中我們已經(jīng)聊過combineLatest()的用法,雖然是使用老版本的ReactiveCocoa和Objective-C語言介紹的,不過使用原理上都是一致的。都是將兩個(gè)信號(hào)量進(jìn)行合并,當(dāng)其中一個(gè)信號(hào)量發(fā)出Value事件時(shí),如果另一個(gè)信號(hào)量之前也發(fā)送過Value事件,那么就取出最后一個(gè)事件的Value值與當(dāng)前發(fā)送的事件值進(jìn)行合并,然后將合并后的值發(fā)送給新的信號(hào)量的觀察者。如果其中一個(gè)未發(fā)送過任何Value,那么將不會(huì)向合并后的信號(hào)量的觀察者發(fā)送事件。下方會(huì)進(jìn)行詳細(xì)的敘述。
下面我們就來仔細(xì)的聊一下combineLatest()的使用方式、具體的代碼實(shí)現(xiàn)以及合并信號(hào)量的工作原理。下方的使用示例我們還是與《iOS開發(fā)之ReactiveCocoa下的MVVM》這篇博客中聊combineLatest()時(shí)使用是示例相同,只不過我們是使用的Swift語言寫的,詳情如下。
一、combineLatest()使用
下方代碼片段是combineLatest()使用方式,介紹如下:
首先創(chuàng)建兩個(gè)信號(hào)量,一個(gè)是signalString,用來