相关疑难解决方法(0)

如何去除方法调用?

我正在尝试用a UISearchView来查询谷歌的地方.在这样做的时候,对于我的文本更改调用UISearchBar,我正在向google地方发出请求.问题是我宁愿将此调用去抖动,每250毫秒只请求一次,以避免不必要的网络流量.我不想自己写这个功能,但如果需要,我会.

我发现:https://gist.github.com/ShamylZakariya/54ee03228d955f458389,但我不太确定如何使用它:

func debounce( delay:NSTimeInterval, #queue:dispatch_queue_t, action: (()->()) ) -> ()->() {

    var lastFireTime:dispatch_time_t = 0
    let dispatchDelay = Int64(delay * Double(NSEC_PER_SEC))

    return {
        lastFireTime = dispatch_time(DISPATCH_TIME_NOW,0)
        dispatch_after(
            dispatch_time(
                DISPATCH_TIME_NOW,
                dispatchDelay
            ),
            queue) {
                let now = dispatch_time(DISPATCH_TIME_NOW,0)
                let when = dispatch_time(lastFireTime, dispatchDelay)
                if now >= when {
                    action()
                }
            }
    }
}
Run Code Online (Sandbox Code Playgroud)

以下是我尝试使用上述代码的一件事:

let searchDebounceInterval: NSTimeInterval = NSTimeInterval(0.25)

func findPlaces() {
    // ...
}

func searchBar(searchBar: UISearchBar!, textDidChange searchText: String!) { …
Run Code Online (Sandbox Code Playgroud)

throttling ios swift

22
推荐指数
7
解决办法
1万
查看次数

标签 统计

ios ×1

swift ×1

throttling ×1