2014-09-12 1 views
1

Im пытается сравнить UIDatePickers выбранное время до текущего времени. Я бы предпочел сравнить выбранное время UIDatePickers со временем на текущем устройстве. Это то, что я пробовал, но это не совсем точно.Пытается сравнить время выбора даты и времени ios

NSDate * date = [NSDate date]; 
NSLog(@"DatePicker.date %@ <= date %@",self.DatePicker.date,date); 

if (self.DatePicker.date<=date) { 

    UIAlertView * alert=[[UIAlertView alloc] initWithTitle:@"Oops!" message:@"Choose a time in the future." delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil]; 
    [alert show]; 
    return; 

} 

И он выходит из системы;

self.DatePicker.date 2014-09-12 15:15:00 +0000 <= date 2014-09-12 15:03:29 +0000 

И показывает AlertView

Это часы, кажется, час от также.

ответ

4

Вы не можете использовать стандартные операторы сравнения, такие как == или <= и т.д. с объектами. Вам нужно сравнить с помощью соответствующих методов, таких как compare:.

if ([self.DatePicker.date compare:date] == NSOrderedDescending) { 
} 

Возможно, это возможно в обратном порядке. Возможно, это должно быть NSOrderedAscending.

+0

Спасибо за это! – DevC

0
  1. Задайте timeZone property your your picker на текущее времяZone.
  2. При сравнении NSDate объектов, вы должны использовать compare:
Смежные вопросы