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