2016-03-25 1 views
0

SwiftBondフレームワークのEventProducerTypeから生成されたイベントを抑制したいと思います。ここでEventProducerTypeから生成されたスロットルイベント - Swift Bond

は、私がイベントを絞る方法をテストしてる方法です。この方法で

var throttledObserver: EventProducer<String?>! 

init() { 
    throttledObserver = Observable<String?>(nil).throttle(1000, queue: Queue.Main)  

    throttledObserver.observeNew { text in 
    // This is always printed no matter how large the throttle time interval is 
    print(text) 
    } 
} 

// UISearchBarDelegate method 
func searchBar(searchBar: UISearchBar, textDidChange searchText: String) { 
    throttledObserver.next(searchText) 
} 

、そこにはスロットリングされていないと、テキストはテキストを変更するとすぐに印刷されます。私の目標は、UISearchBarの検索テキストを絞り込んで、ネットワーク要求を作成してエンドポイントからデータを取得することです。

+0

私はそれは次のように動作するようになりました。 –

答えて

0

私はそれが次のように動作するようになった:

var throttledObserver = Observable<String?>! 

init() { 
    throttledObserver = Observable<String?>(nil) 

    // the key is not to save the returned value from throttle into a variable, but to set the observation immediately 
    throttledObserver.throttle(1000, queue: Queue.Main) 
    .observeNew { text in 
     print(text) 
    } 
} 

// UISearchBarDelegate method 
func searchBar(searchBar: UISearchBar, textDidChange searchText: String) { 
    throttledObserver.next(searchText) 
} 
関連する問題