触发函数时创建计时器
我想创建某种计时器,它会在触发不同类型的函数之间花费时间,但到目前为止我还没有这样的运气。我认为我应该使用 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 秒的输出。不幸的是没有效果。 发生了什么事,我做错了什么?
编辑:
感谢您的回复。 我对我的代码片段做了一些调整。
然而我似乎犯了一个严重的错误。我没有保留 endtime
和 starttime
变量,这似乎解决了我的问题。
I'd like to create some sort of timer that will take the time between firing different kind of functions but I'm having no such luck so far. I assumed I should use the NSDate
object and I've done this so far.
I've created several functions
-(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);
}
For instance when I press a playbutton which will play a movie
I will place the starttime
function
-(void)playMovie:(id)sender
{
[self startTime:(id)sender];
[self callMovie];
}
And when I press a stopbutton for the movie the stopfunction
will be called as will the timeInterval
function
-(void)stopMovie:(id)sender
{
[self endTime:(id)sender];
[self myMovie];
[self timeInterval:(id)sender];
}
However it doesn't seem to work. If I press the stopbutton after 3 seconds I would assume my
function timeInterval
would give an output of 3 seconds. Unfortunately to no avail.
What's going on, and what I'm doing wrong?
EDIT:
Thanks for the responses.
I made some adjustments in my code snippets.
However I seem to have made a crucial error. I wasn't retaining endtime
and starttime
variables and this seems to have solved my case.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用示例计时函数和 sleep 3 的简单程序会产生 -3.000087
A simple program using your example timing functions and sleep 3 yields -3.000087
当您按下停止按钮时会发生什么?如果没有任何反应,请检查您的 IBOutlet,该操作可能未连接到该方法。
What happens when you press the stopbutton? If nothing happens, check your IBOutlets, the action is probably not hooked up to the method.
你不应该调用 endTime 而不是 stopTime 吗?
Shouldn't you be calling endTime instead of stopTime?