0

我想创建某种计时器,它会在触发不同类型的函数之间花费时间,但到目前为止我还没有这样的运气。我认为我应该使用该NSDate对象,并且到目前为止我已经这样做了。

我创建了几个函数

-(void)startTime:(id)sender
{
    starttime = [NSDate date];
    **[starttime retain];**   
    NSLog(@"show me the starttime %f", starttime);
}

-(void)endTime:(id)sender
{
    endtime = [NSDate date];
    **[endtime retain];**
    NSLog(@"show me the endtime %f", endtime);
}

-(void)timeInterval:(id)sender
{
    NSTimeInterval interval = [ starttime timeIntervalSinceDate:endtime];   
    NSLog(@"let me see the timeinterval between now and then %f", interval);
}

例如,当我按下将播放电影的播放按钮时,我将放置该starttime功能

-(void)playMovie:(id)sender
{
 [self startTime:(id)sender];
[self callMovie];
}

当我按下电影的停止按钮时,该函数stopfunction将被调用timeInterval

-(void)stopMovie:(id)sender
{
[self endTime:(id)sender]; 
[self myMovie];

[self timeInterval:(id)sender];
}

但是,它似乎不起作用。如果我在 3 秒后按下停止按钮,我会假设我的函数timeInterval会输出 3 秒。不幸无济于事。发生了什么事,我做错了什么?

编辑:

感谢您的回复。我对我的代码片段进行了一些调整。

但是,我似乎犯了一个严重的错误。我没有保留endtimestarttime变量,这似乎解决了我的问题。

4

3 回答 3

1

使用您的示例计时函数和 sleep 3 的简单程序产生 -3.000087

于 2009-09-14T09:07:59.200 回答
0

当你按下停止按钮时会发生什么?如果没有任何反应,请检查您的 IBOutlets,该操作可能与该方法无关。

于 2009-09-14T09:11:08.347 回答
0
-(IBAction)stopMovie:(id)sender {
    [self endTime:(id)sender]; 
    [self myMovie];
    [self timeInterval:(id)sender];
}

您不应该调用 endTime 而不是 stopTime 吗?

于 2009-09-14T09:44:07.207 回答