создание таймера при срабатывании функции - PullRequest
0 голосов
/ 14 сентября 2009

Я хотел бы создать какой-то таймер, который будет занимать время между запуском различных видов функций, но пока мне не повезло Я предположил, что должен использовать объект 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 секунды. К сожалению, безрезультатно. Что происходит и что я делаю не так?

EDIT:

Спасибо за ответы. Я внес некоторые коррективы в мои фрагменты кода.

Однако я, похоже, допустил серьезную ошибку. У меня не было переменных endtime и starttime, и это, похоже, решило мой случай.

Ответы [ 3 ]

1 голос
/ 14 сентября 2009

Простая программа, использующая ваши примерные функции синхронизации и сон 3, дает -3.000087

0 голосов
/ 14 сентября 2009
-(IBAction)stopMovie:(id)sender {
    [self endTime:(id)sender]; 
    [self myMovie];
    [self timeInterval:(id)sender];
}

Разве вы не должны вызывать endTime вместо stopTime?

0 голосов
/ 14 сентября 2009

Что происходит, когда вы нажимаете кнопку остановки? Если ничего не происходит, проверьте свой IBOutlets, возможно, действие не связано с методом.

...