Objective-C中如何限制函数调用频率的详细解析?
- 内容介绍
- 文章标签
- 相关推荐
本文共计987个文字,预计阅读时间需要4分钟。
前言+最近抽空看了些算法相关的,刷刷LeetCode。感觉脑子不太好用。想到之前处理过一个挺好玩的问题——限制GCD调用的频率。后来扩展到了限制函数调用的频率。这里顺便提一下。
前言
最近抽空闲的时间看了一些算法相关的,刷刷LeetCode。实在感觉脑子不好使。想到前段时间处理了一个挺好玩的问题——限制GCD调用的频率。后来扩展到了限制函数调用。这里顺便总结一下。
本来想写详细点,太懒了,这里只给出了基本思路和核心代码。
思路
为了达到限制调用频率的目的,很容易联想到throttle,也就是限流。最开始是从网络节流了解到这个基础名词的。简单来理解就是:对要处理的数据进行流量处理,限制频率。不是很清楚的可以看看这篇文章iOS编程中throttle那些事
大致有三种:
1、一定时间内,以最早的数据为准。
2、一定时间内,以最后的数据为准。
3、如果时间在一定时间内,有新的数据来了,从新开始计时。
一定时间内很简单的可以通过比较上次时间和当前时间来比较,剩下的就是如何取消之前已经产生的数据。这里有两个思路,一个是用最新的覆盖掉之前的数据,二是直接把老数据删掉,重新构造新的数据。
可能看起来不清楚,现在就用实际例子来说。
本文共计987个文字,预计阅读时间需要4分钟。
前言+最近抽空看了些算法相关的,刷刷LeetCode。感觉脑子不太好用。想到之前处理过一个挺好玩的问题——限制GCD调用的频率。后来扩展到了限制函数调用的频率。这里顺便提一下。
前言
最近抽空闲的时间看了一些算法相关的,刷刷LeetCode。实在感觉脑子不好使。想到前段时间处理了一个挺好玩的问题——限制GCD调用的频率。后来扩展到了限制函数调用。这里顺便总结一下。
本来想写详细点,太懒了,这里只给出了基本思路和核心代码。
思路
为了达到限制调用频率的目的,很容易联想到throttle,也就是限流。最开始是从网络节流了解到这个基础名词的。简单来理解就是:对要处理的数据进行流量处理,限制频率。不是很清楚的可以看看这篇文章iOS编程中throttle那些事
大致有三种:
1、一定时间内,以最早的数据为准。
2、一定时间内,以最后的数据为准。
3、如果时间在一定时间内,有新的数据来了,从新开始计时。
一定时间内很简单的可以通过比较上次时间和当前时间来比较,剩下的就是如何取消之前已经产生的数据。这里有两个思路,一个是用最新的覆盖掉之前的数据,二是直接把老数据删掉,重新构造新的数据。
可能看起来不清楚,现在就用实际例子来说。

