Xcode - установка лимита для таймера обратного отсчета NSDate

Я использую xCode 4.3.2. В моем проекте таймера обратного отсчета (код показан ниже) я хочу остановить обратный отсчет через 30 секунд. Как я могу установить этот предел для моего обратного отсчета? Не могли бы вы мне помочь?

int countLimit=30; //seconds
NSDate *startDate;

- (void)countDown{
    NSDate *currentDate = [NSDate date];
    NSTimeInterval timeInterval = -([currentDate timeIntervalSinceDate:startDate]);
    NSDate *timerDate = [NSDate dateWithTimeIntervalSince1970:timeInterval];
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"HH:mm:ss"];
    [dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0.0]];
    NSString *timeString=[dateFormatter stringFromDate:timerDate];
    self.myCounterLabel.text = timeString;
    [dateFormatter release];
}

- (void)updateCounter{

    self.myCounterLabel.text = @"00:00:00";
    startDate = [[NSDate date]retain];

    myTimer = [NSTimer scheduledTimerWithTimeInterval:1.0/10.0
    target:self
    selector:@selector(countDown)
    userInfo:nil
    repeats:YES];
}

person shebi    schedule 14.04.2012    source источник
comment
Мне не удалось заставить этот код работать, но вот отличное руководство о том, как сделать таймер обратного отсчета, который идеально подходит для меня.   -  person Neeku    schedule 04.12.2012


Ответы (1)


Просто добавьте в свой countDown

if([[NSDate date] timeIntervalSinceDate:startDate]>=countLimit)

[myTimer invalidate];
person Nikita Pestrov    schedule 14.04.2012
comment
это дает мне два предупреждения: - 1. Метод класса '+ timeIntervalSinceDate:' не найден (по умолчанию тип возврата равен 'id'). 2. Упорядоченное сравнение между указателем и целым числом («id» и «int») - person shebi; 14.04.2012