2010-08-04 66 views
0

我已經創建了一個計時器,我將剩餘時間轉換爲格式爲「mm:ss」的字符串,當時間的字符串值爲00:00時,我想使計時器。由於某種原因,它不起作用,即使我記錄剩餘的時間,我看到該值具有正確的格式,所以我不知道爲什麼我的「if」分支在「countTime:」從不輸入。無效的NSTimer不工作

任何人都可以幫忙嗎?

-(id) init { 
    if(self = [super init]) { 
     NSDate *date = [[NSDate alloc] init]; 
     self.intervalLength = date; 
     [date release]; 

     NSString *timeRem = [[NSString alloc]init]; 
     self.timeRemaining = timeRem; 
     [timeRem release]; 


     formatter = [[NSDateFormatter alloc] init]; 
     [formatter setDateFormat:@"mm:ss"]; 
     notification = [NSNotification notificationWithName:@"timer" object:self]; 
     notificationForEnd = [NSNotification notificationWithName:@"timerFinished" object:self]; 
     NSMutableDictionary *info = [[NSMutableDictionary alloc] init]; 
     [info setObject:formatter forKey:@"format"]; 
     [info setObject:notification forKey:@"notification"]; 
     [info setObject:notificationForEnd forKey:@"notificationEnd"]; 
     NSTimer *timer = [[NSTimer alloc] init]; 
     timer = [[NSTimer alloc] init]; 
     timer = [NSTimer timerWithTimeInterval:1.0 target:self selector:@selector(countTime:) userInfo:info repeats:YES]; 
     self.intervalTimer = timer; 
    } 
    return self; 
} 

-(void) startIntervalCountDown { 
    runLoop = [NSRunLoop currentRunLoop]; 
    [runLoop addTimer:self.intervalTimer forMode:NSDefaultRunLoopMode]; 
} 

-(void) countTime:(NSTimer*)timer { 
    if(self.timeRemaining == @"00:00") { 
     [timer invalidate]; 
     timer = nil; 
     [[NSNotificationCenter defaultCenter] postNotification:[[timer userInfo] objectForKey:@"notificationEnd"]]; 
    } 
    d = [self.intervalLength dateByAddingTimeInterval: -1.0]; 
    self.intervalLength = [d copy]; 
    self.timeRemaining = [[[timer userInfo] objectForKey:@"format"] stringFromDate:d]; 
    [[NSNotificationCenter defaultCenter] postNotification:[[timer userInfo] objectForKey:@"notification"]]; 

回答

2

您正在比較指針相等而不是字符串相等。你想要

[self.timeRemaining isEqualToString:@"00:00"]