2012-01-17 1 views
1

사용자 생년월일에서 나중으로 카운트 다운하는 UILabel을 업데이트하려고합니다. 나는 레이블을 업데이트하려고 노력 중입니다. 그래서 레이블을 업데이트 할 수는 있지만 작동시킬 수는 없습니다. 조언을 부탁드립니다!타이머를 통해 UILabel 업데이트가 작동하지 않습니다.

- (NSString *)timeFormatted:(int)totalSeconds 
{  
    NSTimeInterval theTimeInterval = [self numberOfSecondsToLive]; 

    NSCalendar *sysCalendar = [NSCalendar currentCalendar]; 

    NSDate *date1 = [[NSDate alloc] init]; 
    NSDate *date2 = [[NSDate alloc] initWithTimeInterval:theTimeInterval sinceDate:date1]; 

    unsigned int unitFlags = NSHourCalendarUnit | NSMinuteCalendarUnit | NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit | NSSecondCalendarUnit; 

    NSDateComponents *conversionInfo = [sysCalendar components:unitFlags fromDate:date1 toDate:date2 options:0]; 

    _numberofSeconds.text = [NSString stringWithFormat:@" %dyears:%dMonths:%ddays:%dhour:%dminutes:%dseconds",[conversionInfo year],[conversionInfo month], [conversionInfo day], [conversionInfo hour], [conversionInfo minute], [conversionInfo second]]; 

    [date1 release]; 
    [date2 release]; 
} 

무엇을 어떻게하는 것이 올바른 카운트 다운 정보를 표시 않는다는 것입니다 ...

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view from its nib. 
    [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timeFormatted:) userInfo:nil repeats:NO]; 
} 

여기에 내가 실제 카운트 다운 정보를 얻을 수있는 곳입니다 : 여기

내가 타이머를 만드는 곳이다 , 그러나 그것을 업데이 트하지 않습니다.

미리 감사드립니다.

답변

5

타이머를 repeats:NO으로 시작 했으므로 타이머를 반복하려면 repeats:YES이 되길 원합니다.

+0

고맙습니다! 나는 이것에 대해 새롭고 내가 놓친 간단한 것이 될 것이라고 생각했습니다. 감사!! – sixstatesaway

3

이 아마도 당신이이 줄 NO 대신 repeatsYES에를 설정하려면 :

[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timeFormatted:) userInfo:nil repeats:NO]; 

보조 노트에,이 라인은 잘못된 것입니다 :

- (NSString *)timeFormatted:(int)totalSeconds 

그것은해야한다 :

- (void)timeFormatted:(NSTimer *)timer 
관련 문제