[英]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;
}
}
一种简单的方法是使用NSDate
的compare
方法:
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.