码迷,mamicode.com
首页 > 其他好文 > 详细

利用CFAbsoluteTimeGetCurrent()计算时间差

时间:2014-08-17 21:21:22      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   for   ar   2014   

开发中,遇到计算时间差的问题,利用CFAbsoluteTimeGetCurrent()可以很方便的进行计算

实例:

场景:类似购物车中修改商品数量的功能,如下图所示,要求,修改完的数量,要同步到服务器。

bubuko.com,布布扣

分析:如果点击“+”或者“-”,立即进行服务器同步的话,代价貌似有些高,所以采用延时提交的方法:“连续”点击的时候,不提交到服务器,点击停止,进行同步。这个项目中,“连续”点击的判断,采用的是判断两次点击的时间差,如果时间差小于一定的数值(本例中,这个数值是2),那么即可判定是连续点击的操作。代码如下:

- (void) editCount {
    double diff = 0;
    if (_startTime == 0) {//开始的时候,将_startTime和_endTime设置初始化为0
        _startTime = CFAbsoluteTimeGetCurrent();
        _endTime = _startTime;
    }
    else {
        _endTime = CFAbsoluteTimeGetCurrent();
        diff = _endTime - _startTime;
        _startTime = _endTime;
    }
    
    NSLog(@"start = %lf,end = %lf,diff = %lf",_startTime,_endTime,diff);
    NSString * testStr = @"just for test";

    if (diff < 2) {//是连续点击,取消同步到服务器
        [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(willUpdateServerCartWithCount:) object:testStr];
    }

  //开启一个新的延时执行 [self performSelector:@selector(willUpdateServerCartWithCount:) withObject:testStr afterDelay:
2]; }

 

利用CFAbsoluteTimeGetCurrent()计算时间差,布布扣,bubuko.com

利用CFAbsoluteTimeGetCurrent()计算时间差

标签:style   blog   http   color   io   for   ar   2014   

原文地址:http://www.cnblogs.com/benbenzhu/p/3918206.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!