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"]];