Если заявление темпераментное - PullRequest
0 голосов
/ 16 июня 2011

Я не уверен, но иногда мое утверждение if терпит неудачу и показывает неправильную вещь, когда это не должно быть Есть идеи?

-(void)updateLabel{



   if (today > Date) {



    [only setHidden:YES];
    [untilRelease setHidden:YES];
    [theLabel setText:@"IS OUT"];


} else {


    NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];

    int units = NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;

    NSDateComponents *components = [calendar components:units fromDate:[NSDate date] toDate:Date options:0];

    [theLabel setText:[NSString stringWithFormat:@"%d %@, %d %@ \n %d %@, %d %@ %d %@", [components month], @"Months", [components day], @"Days", [components hour], @"Hours", [components minute], @"Minutes and", [components second], @"Seconds"]];


}}

Я определил сегодня как [NSDate date], а Date - номер эпохи.

Любая помощь будет великолепна

1 Ответ

1 голос
/ 17 июня 2011

Поскольку они оба NSDate, сделайте это,

NSComparisonResult result = [today compare:Date];
if ( result == NSOrderedDescending ){ //  today > Date
    // After Date
} else {
    // Before Date
}

Исходный ответ

Если today равно [NSDate date] и Dateэто номер эпохи, вы сравниваете их неправильно.Вы должны преобразовать today в число эпох до того, как их сравнивать.

long currentTime = [today timeIntervalSince1970];
if ( currentTime > Date ) {
    // After `Date`
} else {
    // Before `Date`
}
...