如果声明是气质的

时间:2011-06-16 18:02:17

标签: ios xcode calendar if-statement nsdate

我不确定,但有时我的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 个答案:

答案 0 :(得分:1)

由于它们都是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`
}