2012-04-14 2 views
0

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

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]; 
} 
+0

Я не мог получить этот код работает, но [здесь отличный учебник] (http://iphoneapp-dev.blogspot.com/2010 /10/how-to-create-countdown-timer-in-iphone.html) о том, как сделать таймер обратного отсчета, который отлично работает для меня. – Neeku

ответ

0

Просто добавьте в CountDown

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

[myTimer invalidate]; 
+0

это дает мне два предупреждения: - 1. Метод класса '+ timeIntervalSinceDate:' not found (тип возврата по умолчанию - 'id'). 2. Упорядоченное сравнение между указателем и целым числом ('id' и 'int') – shebi

+0

Извините, обновил мой ответ, я имел в виду [NSDate date] –

+0

Спасибо, Никита, теперь он работает отлично. – shebi

Смежные вопросы