2011-01-18 4 views
4

Ii пытается получить дату и время с использованием даты, но когда я запускаю приложение, требуется время, затраченное на выполнение и время выполнения, в кратчайшие сроки не изменяется.Ввод текущего времени в метку

NSDate *StrDate = [NSDate date]; 
     NSDateFormatter *Dateformat = [[NSDateFormatter alloc]init]; 
     [Dateformat setDateFormat:@"DD-MM-YYYY"]; 
     NSMutableString *DateStr = [Dateformat stringFromDate:StrDate]; 
     [UserCntrl.timeDisplay setText:DateStr]; 
     [Dateformat setDateFormat:@"HH:MM"]; 
     NSMutableString *timeStr=[Dateformat stringFromDate:StrDate]; 
+0

Пожалуйста, найдите время для правильного форматирования кода в своем вопросе (с помощью элемента управления {} "редактора). –

+2

Две вещи: (1) пожалуйста, переформатируйте свой код. (2) не используют имена капитализированных переменных в Objective-C (измените 'StrDate' на' strDate' или, еще лучше, 'currentDate'). –

+0

@sam, также, вы должны принять ответы. Люди будут более охотно тратить время, чтобы ответить на ваши вопросы, если вы примете ответы. –

ответ

4

Место по расписанию таймера в вашем UIView сделал шоу (или же нагрузка) метод:

[NSTimer scheduledTimerWithTimeInterval:1.0f // 1 second 
    target:self 
    selector:@selector(updateTime:) 
    userInfo:nil 
    repeats:YES]; 

Затем поместите этот метод в контроллер View:

- (void) updateTime:(id)sender 
{ 
    NSDate *StrDate = [NSDate date]; 
     NSDateFormatter *Dateformat = [[NSDateFormatter alloc]init]; 
     [Dateformat setDateFormat:@"DD-MM-YYYY HH:mm:SS"]; 
     NSMutableString *DateStr = [Dateformat stringFromDate:StrDate]; 
     [UserCntrl.timeDisplay setText:DateStr]; // or whatever code updates your timer. I didn't check this for bugs. 
} 

Это вызовет метод «updateTime:» один раз в секунду, обновив ваш контроллер.

0

[Дата NSDate] делает объект даты того времени, когда вы его вызываете. Вы должны снова позвонить ему, чтобы обновить дату. Другими словами, вы должны сделать StrDate = [NSDate date]; когда вы хотите получить текущую дату в своем методе.

0

У Вас есть ошибка в вашем коде: Вместо [Dateformat setDateFormat:@"HH:MM"]; должно быть [Dateformat setTimeFormat:@"HH:MM"];

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