繁体   English   中英

iPhone开发人员:尝试比较当前日期和数组元素的日期

[英]iPhone dev: Trying to compare current date and date of array element

我有部分工作的UITable。 UITable从外部XML文件获取数据,这也很好用。 但是我想要的是XMLparser排除日期早于今天的行。 我想在文件添加元素到数组时执行此操作。 但是,当我添加此代码时,我得到一个错误。 请帮我解决这个问题!

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
   NSDate* date = [NSDate date];
   NSDateFormatter* nsformatter = [[[NSDateFormatter alloc] init] autorelease];
   [nsformatter setDateFormat:@"yyyy-MM-dd"];
   NSDate* stageDate = [XMLParser dateFromString:aStage.end];

   if([elementName isEqualToString:@"Stages"])
   {
       return;
   }
   if([elementName isEqualToString:@"Month"])
   {
   [appDelegate.stages addObject:aMonth];
       [aMonth release];
   aMonth = nil;
   }
   if([elementName isEqualToString:@"Stage"])
   {
       /* THIS IS THE PART I ADDED BUT GIVES THE ERROR
       if(stageDate < date)
       {
       */
           [aMonth.stagesPerMonth addObject:aStage];
           [aStage release];
           aStage = nil;
       /*
       }
       */
   }
   else
   {
       [aStage setValue:currentElementValue forKey:elementName];
       [currentElementValue release];
       currentElementValue = nil;
   }
}

一种简单的方法是使用NSDatecompare方法:

NSComparisonResult result = [stageDate compare:aDate];  
if (result == NSOrderedAscending)     
    // stageDate is in the future
else if (result == NSOrderedDescending)     
    // stageDate is in the past
else     
    // Both dates are the same

您以错误的方式比较日期。 尝试这个。

NSTimeInterval interval = [date timeIntervalSinceDate:stageDate];
if (interval > 0) {
    [aMonth.stagesPerMonth addObject:aStage];
    [aStage release];
    aStage = nil;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM