1

我正在将一个日期(比如 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:]

4

2 回答 2

1

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

NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [dateFormatter dateFromString:current_date_from_db];
于 2012-06-07T18:33:57.893 回答
0

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

于 2012-06-07T18:38:21.290 回答