国产gaysexchina男同gay,japanrcep老熟妇乱子伦视频,吃奶呻吟打开双腿做受动态图,成人色网站,国产av一区二区三区最新精品

ReactiveCocoa的另外一種流:信號(hào)

2018-08-01 14:38 更新

本篇我們介紹ReactiveCocoa的另一種類型的流,即信號(hào)。信號(hào)是push-driven的,這點(diǎn)與序列流正好相反,新值雖然能夠通過管道進(jìn)行發(fā)布卻不能像pull-driven一樣在管道中獲取,它們所抽象出來的數(shù)據(jù)只會(huì)在以后的某個(gè)時(shí)間進(jìn)行傳送。

這里需要理解兩個(gè)概念:pull-drivenpush-driven.

Push-driven means that values for the signal are not defined at the moment of signal creation and may become available at a later time (for example, as a result from network request, or any user input).

Push-driven : 在創(chuàng)建信號(hào)的時(shí)候,信號(hào)不會(huì)被立即賦值,之后才會(huì)被賦值(舉個(gè)栗子:網(wǎng)絡(luò)請(qǐng)求回來的結(jié)果或者是任意的用戶輸入的結(jié)果)

Pull-driven means that values in the sequence are defined at the moment of signal creation and we can query values from the stream one-by-one.

Pull-driven : 在創(chuàng)建信號(hào)的同時(shí)序列中的值就會(huì)被確定下來,我們可以從流中一個(gè)個(gè)地查詢值。

信號(hào)發(fā)送三種類型的值:Next Values代表了下一個(gè)發(fā)送到管道內(nèi)的值。Error Value代表signal無法成功完成,一般很少見,我們會(huì)在下一章學(xué)習(xí)怎么使用她們。Completion Values代表signal成功完成,我們也會(huì)在下一章來學(xué)習(xí)。這里要注意的是:

一個(gè)事情響應(yīng)中,一個(gè)signal(信號(hào))發(fā)送了一個(gè)Error value或者一個(gè)Completion Value后,就不會(huì)再發(fā)送任何其他的value. 錯(cuò)誤或者成功將只會(huì)發(fā)送其中一個(gè),絕不會(huì)有兩個(gè)同時(shí)發(fā)送的情況!

信號(hào)是ReactiveCocoa的核心組件之一。ReactiveCocoa為UIKit的每一個(gè)控件內(nèi)置了一套信號(hào)選擇器。例如,UITextField就有一個(gè)rac_textSignal,UITextField中每一次按鍵的響應(yīng)都會(huì)通過它發(fā)送出去。下一章我們會(huì)學(xué)習(xí)如何使用信號(hào)來執(zhí)行任務(wù)。

ClassDiagram

信號(hào)也可以被鏈接(鏈?zhǔn)秸{(diào)用)和轉(zhuǎn)化。通過映射或者過濾一個(gè)流得到的新的流也可以隨后被映射、被過濾,進(jìn)行所有你能想到的各種操作。在下一章中我們會(huì)更多的介紹這方面的內(nèi)容。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)