2013-06-27 1 views
0

У меня есть метка, которую я хочу обновлять ежедневно и автоматически? в определенное время. Как мог бы код ... Я каждый раз искал каждый способ обновить ярлык ежедневно.Обновите ярлык ежедневно новым текстом

ярлык NSdate и NStimer. А также datepicker, если пользователь хочет посмотреть вперед события.

Я думаю, это что-то с «если» дата ..} еще {... и что-то подобное

Благодаря

редактировать:

Если у меня уже есть эти коды в моем приложении, то будет что-то не так

NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init]; 


NSDate *nowDate = [NSDate date]; 

self.currentDateLabel.text = [dateFormatter stringFromDate:nowDate]; 
+0

Эй, вы shouldnot отправлять повторяющиеся вопросы. Вы отправили этот же вопрос yday no? Лучшая практика заключается в том, чтобы отредактировать один и тот же вопрос до хорошей формы. – prince

+0

Я редактировал его, но он находится в режиме ожидания, поэтому никто не видел его, я думаю. Извините, – user2310932

ответ

0

Попробуйте этот код для любого сравнения между датами ... Вы не должны сравнивать дату в виде строки. Сравните даты перед преобразованием в строку. Преобразуйте формат self.serverDate в формат даты с использованием dateFromString функции форматирования, указав точный формат даты, что и dateString. Затем сравните даты, используя следующую функцию.

-(void) callAfterSixtySecond:(NSTimer*) t 
{ 

NSDate *today = [NSDate date]; // current date 
NSDate *newDate = self.serverDate; // other date 

NSDateFormatter *formatter = [[NSDateFormatter alloc]init]; 
[formatter setDateFormat:@"HH:mm"]; 
NSDate *todayTime = [formatter dateFromString:[formatter stringFromDate:today]]; 
NSDate *requiredTime = [formatter dateFromString:[formatter stringFromDate:newDate]]; 

NSComparisonResult result; 

result = [todayTime compare:requiredTime ]; // comparing two dates 

if(result == NSOrderedAscending) 
    NSLog(@"today is less"); 
else if(result == NSOrderedDescending) 
    NSLog(@"newDate is less"); 
else if(result == NSOrderedSame) 
    NSLog(@"Both dates are same"); // time has reached. Update Label using setText method of label 
else 
    NSLog(@"Date cannot be compared"); 
} 

Вам нужно будет запустить этот метод каждую минуту, используя NSTimer ...

NSTimer* myTimer = [NSTimer scheduledTimerWithTimeInterval: 60.0 target: self 
            selector: @selector(callAfterSixtySecond:) userInfo: nil repeats: YES]; 
+0

будет работать в течение года (каждый день новый текст в ярлыке? – user2310932

+0

да, это будет ... Попробуйте изменить время своего устройства и проверьте. Также убедитесь, что фиксированная дата, с которой вы хотите сравнить это, находится в формате «HH: mm», т. Е. 24-часовой формат. Иначе вам нужно будет соответствующим образом соответствовать формату. – prince

+0

Как это будет работать с моим уже кодом? Tjek выше .. – user2310932

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

  • Нет связанных вопросов^_^