簡體   English   中英

反應性可可粉-然后在自定義信號與UI信號上

[英]Reactive Cocoa - then on custom signal vs UI signal

我開始使用活性可可粉,因此我編寫了一個小測試以了解我是否理解然后構造。 目標是僅在發送某些信號后才將文本從文本字段輸出到標簽。 我已經嘗試過rac_signalForControlEvents(UIControlEvents.TouchUpInside)和非常簡單的自定義信號。 前者甚至不調用然后關閉,而后者確實按預期工作。 這里有什么問題?

func someSetupFunction()
{
#if true
    // Why does this doesn't work?

    button.rac_signalForControlEvents(UIControlEvents.TouchUpInside).then
        {
            let strongSelf = weakSelf
            return strongSelf?.textField.rac_textSignal()
        }.subscribeNext
        { object in
            let strongSelf = weakSelf
            strongSelf?.label.text = object as! String! + " - 0"
        }
#else
    // ... but this does?

    customSignal().then
        {
            let strongSelf = weakSelf
            return strongSelf?.textField.rac_textSignal()
        }.subscribeNext
        { object in
            let strongSelf = weakSelf
            strongSelf?.label.text = object as! String! + " - 1"
        }
#endif
}

func customSignal() -> RACSignal
{
    return RACSignal.createSignal
        { subscriber in
            subscriber.sendNext(nil)
            subscriber.sendCompleted()
            return nil
        }
}

從文檔然后

忽略接收方的所有下一個,等待接收方完成,然后訂閱新信號。

button.rac_signalForControlEvents未完成(至少沒有在單擊按鈕時完成),這就是為什么什么也沒有發生的原因。

iv-mexx的原始答案可以在https://github.com/ReactiveCocoa/ReactiveCocoa/issues/2671中找到

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM