本篇博客我们就来聊一下combineLatest()的使用以及具体的实现方式。在之前的《iOS开发之ReactiveCocoa下的MVVM》的博客中我们已经聊过combineLatest()的用法,虽然是使用老版本的ReactiveCocoa和Objective-C语言介绍的,不过使用原理上都是一致的。都是将两个信号量进行合并,当其中一个信号量发出Value事件时,如果另一个信号量之前也发送过Value事件,那么就取出最后一个事件的Value值与当前发送的事件值进行合并,然后将合并后的值发送给新的信号量的观察者。如果其中一个未发送过任何Value,那么将不会向合并后的信号量的观察者发送事件。下方会进行详细的叙述。
下面我们就来仔细的聊一下combineLatest()的使用方式、具体的代码实现以及合并信号量的工作原理。下方的使用示例我们还是与《iOS开发之ReactiveCocoa下的MVVM》这篇博客中聊combineLatest()时使用是示例相同,只不过我们是使用的Swift语言写的,详情如下。
一、combineLatest()使用
下方代码片段是combineLatest()使用方式,介绍如下:
首先创建两个信号量,一个是signalString,用来