99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

ReactiveCocoa怎么使用指令?

2018-08-01 14:58 更新

在上一節(jié)的內(nèi)容中,我們綁定UIButton的enabled屬性并不是最佳實(shí)踐,因?yàn)閁IButton增加了一個ReactiveCocoa的類和一條指令。在這一節(jié)中我們來介紹ReactiveCocoa的指令。使用button的rac_command可以為我們監(jiān)控enabled屬性。 應(yīng)用一段ReactiveCocoa的文檔:

指令,RACCommand類的代表,創(chuàng)建并訂閱動作的信號響應(yīng),可以很容易地實(shí)現(xiàn)一些用戶與應(yīng)用交互時的邊界效果。

指令(行為觸發(fā)的)通常是UI驅(qū)動的,比如按鍵的點(diǎn)擊。指令也可以通過信號自動禁用,這種禁用狀態(tài)呈現(xiàn)在UI上就是禁用與該指令相關(guān)聯(lián)的任何操作。

當(dāng)你想要一次用戶交互發(fā)送一個信號來響應(yīng)的時候指令就很有用。指令信號對訂閱了指令的這個信號而言,她之后的輸出都被指令信號所處理。這有一點(diǎn)點(diǎn)混亂,在第五章我們會看到一些指令相關(guān)的實(shí)踐。

現(xiàn)在我們用下面的代碼來替代之前的在button上綁定enabled屬性的代碼

self.button.rac_command = [[RACCommand alloc] initWithEnabled:validEmailSignal
                                                signalBlock:^RACSignal *(id input){
                                                    NSLog(@"Button was pressed.");
                                                    return [RACSignal empty];
                                                }];

任何時候button被點(diǎn)擊就會執(zhí)行signalBlock,rac_command屬性會監(jiān)控使能信號validEmailSignal和button的enabled屬性。(實(shí)際上,如果我們保留原來的代碼,新加這一段會引起重復(fù)綁定一個屬性的錯誤)。

另外,這里返回的[RACSignal empty]是什么東西?這里我們需要返回一個信號讓屬于RACCommand的executionSignal管道(pipe)下發(fā)出去。這個信號代表button按下時一些任務(wù)需要被處理。在這個處理信號沒有返回一個'complete value'('empty '會立即返回一個'complete value')之前button將會保持不可用狀態(tài)。因?yàn)檫@個例子中我們只是打印了一下,所以這里我們只返回一個empty信號。在第五章我們將繼續(xù)討論RACCommand及其用途。


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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號