亚洲精品久久久久久第一页-人妻少妇精彩视品一区二区三区-91国产自拍免费视频-免费一级a在线播放视频正片-少妇天天日天天射天天爽-国产大屁股喷水视频在线观看-操美女骚穴抽插性爱视频-亚洲 欧美 中文字幕 丝袜-成人免费无码片在线观看

響應(yīng)式編程應(yīng)用場景 ios響應(yīng)式編程優(yōu)缺點(diǎn)( 二 )


下面簡單介紹一下 RxSwift , 不過這兩種架構(gòu)的概念是相似的 。
RxSwift
RxSwift 繼承自觀察者模式 , 模擬 Cocoa Touch 對象中的異步數(shù)據(jù)流 , 按通常的集合來看待這些對象 。通過利用可觀測流繼承一些 Cocoa Touch 類 , 可以訂閱它們的輸出 , 并利用復(fù)合運(yùn)算(如 filter()、merge()、map() 和 reduce() 等)來使用這些輸出 。
還回到剛才的例子中 , 假設(shè)一個 iOS 應(yīng)用有兩個滑塊(sliderA 和 sliderB) , 并希望利用之前的表達(dá)式(A * 2 + B)不斷更新標(biāo)簽(labelC)的值:
1. combineLatest(sliderA.rx_value, sliderB.rx_value) {
2. $0 * 2 + $1
3. }.map {
4. “Sum of slider values is ($0)”
5. }.bindTo(labelC.rx_text)
利用 UISlider 類的 rx_value 后綴 , 將滑塊的值屬性轉(zhuǎn)化為可觀測類型 , 
通過在每個滑塊的可觀測類型上使用 combineLatest() 操作 , 我們還創(chuàng)建了一種新的可觀測類型 , 只要其中任何一個源流釋放出一個項目 , 它就會釋放項目 。結(jié)果就是一個元組 , 每個滑塊值都可以通過操作回調(diào)而轉(zhuǎn)換(代碼行 2) 。然后將變換值映射到信息性字符串(代碼行 4) , 并將其值綁定到標(biāo)簽上(代碼行 5) 。
通過組合 3 個獨(dú)立的操作(combineLatest()、map()、bindTo()) , 我們就能精確地表達(dá)三種對象之間的關(guān)系并不斷更新應(yīng)用的 UI , 響應(yīng)應(yīng)用狀態(tài)中的改變 。
額外介紹
上面的內(nèi)容只是對 RxSwift 用途做了一個粗淺的介紹 。
參看樣例代碼 , 在這個例子中 , 使用可鏈接的異步任務(wù)下載在線資源 。如果這篇文章引發(fā)了你的好奇心 , 一定要看看這個例子 。
然后 , 可以讀讀這篇文檔 , 學(xué)習(xí)其他一些 API 擴(kuò)展 , 采用一種函數(shù)式并具有表現(xiàn)力的方式來開發(fā) iOS 應(yīng)用 。
還可閱讀 使用輕量級模式 來了解Swift 模式如何幫助你處理大量相似對象 。
作者簡介
Milton Moura(@mgcm)是一位葡萄牙的自由 iOS 開發(fā)者 。他曾就職于涉及航空、電信、能源等領(lǐng)域的多家公司 , 如今全心致力于使用蘋果技術(shù)開發(fā)優(yōu)秀應(yīng)用 。除了醉心于設(shè)計與用戶交互外 , 他還非常喜歡新的軟件開發(fā)方式 。


以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請您及時就醫(yī)或請專業(yè)人士給予相關(guān)指導(dǎo)!

「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對您有所幫助: