比较NSdate时出现意外错误

时间:2012-06-07 18:07:11

标签: iphone ios nsdate

我将一个日期(比如start_date)与当前日期(current_date_from_db)进行比较。但是这两个错误中的任何一个都没有达成比较:

if ([current_date_from_db compare:start_date]== NSOrderedAscending) 
{
     NSLog(@"Yes");
}
else {      
     NSLog(@"No");      
};

while([ current_date_from_db earlierDate:start_date] && [current_date_from_db laterDate:end_date]) 

代码失败

  

SIGBART:由于未捕获的异常而终止应用   ' NSInvalidArgumentException',原因:' - [NSCFString isEqualToDate:]

2 个答案:

答案 0 :(得分:1)

current_date_from_db是一个字符串,您可以在错误消息中看到:[NSCFString isEqualToDate:]。您需要解析日期然后进行比较:

NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [dateFormatter dateFromString:current_date_from_db];

答案 1 :(得分:0)

您需要在比较之前进行转换。使用current_date_from_db创建NSDate对象或将start_date转换为字符串然后进行比较。