【问题标题】:How to store timed passed in NSDate如何存储在 NSDate 中传递的时间
【发布时间】:2013-09-13 19:13:46
【问题描述】:

我想存储 NSDate 中经过的时间量。所以当一个按钮被触发时,我想要一个计时器开始计数,我猜以秒为单位,然后存储用户在 NSDate 中点击下一个按钮之前已经过去了多少时间,这样我就可以从另一个 NSDate 中减去这个值以获得差异使用 NSTimeInterval。

NSDate *date = [[NSDate alloc] initWithTimeIntervalSinceNow:(slider.value * 60)];

        NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:[date timeIntervalSinceNow] target:self selector:@selector(nextFunction) userInfo:nil repeats:NO];

【问题讨论】:

    标签: ios nsdate nstimer nstimeinterval


    【解决方案1】:

    NSDate 有一个实例方法 timeIntervalSinceDate:,它返回一个 NSTimeInterval
    当第一个按钮被按下时,您可以使用[NSDate date] 获取当前数据并将其存储在名为“previousDate”的属性中,然后当第二个按钮被按下时:您可以再次获取当前数据并计算时间间隔使用以下代码传递:

    - (void)firstButtonTapped {
        [self setPreviousDate:[NSDate date]];
    }
    
    - (void)secondButtonTapped {
        NSTimeInterval timeInterval = [[NSDate date] timeIntervalSinceDate:[self previousDate]];
        // timeInterval now contains the amount of time that passed in seconds
    }
    

    【讨论】:

    • 我是否使用 NSDate 创建计时器?您能否给我一个示例,其中包含将执行我提到的任务的代码。谢谢
    • 不,您在第一次单击按钮时设置了 previousDate 变量;这是您在课堂上本地存储的属性。然后,当点击第二个按钮时,您会创建一个新日期,如上所示,并比较两者,timeInterval 将返回经过的秒数。
    • 我不明白 setPreviousDate 部分.. 我不能做类似 NSDate *date2 = timeIntervalSinceDate 的事情。看看我上面的代码。
    • 我没有创建任何类
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-09
    • 1970-01-01
    • 2011-11-01
    • 2014-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多