我是iPhone开发人员的新手,
我想比较两个日期,第一个日期将来自数据库让我们说,newDate
,第二个日期是今天的日期,
如果今天比newDate
更大,那么我想显示警告。
这是我的代码段,
NSString *newDate = [formatter stringFromDate:st];
NSDate *today=[[NSDate alloc]init];
if ([today compare:newDate] == NSOrderedDescending)
{
NSLog(@"today is later than newDate");
}
else if ([today compare:newDate] == NSOrderedAscending)
{
NSLog(@"today is earlier than newDate");
}
else
{
NSLog(@"dates are the same");
}
但它崩溃了,在编译时它也向我显示警告[today compare:newDate]
我们将不胜感激。
答案 0 :(得分:6)
问题是,您正在比较字符串和日期。如果您查看newDate
,您会看到它是NSString
而不是NSDate
。如果您在compare:
上使用NSDate
方法,则两个对象都必须为NSDate
。查看代码,看起来st
是与NSDate
对应的newDate
(尽管您的命名看起来有点奇怪),请尝试使用today
代替newDate
}}
答案 1 :(得分:-1)
您正在尝试将日期对象与字符串进行比较。您需要与日期对象进行比较。
[today compare:newDate] == NSOrderedDescending)
newDate
应该是NSDate实例。我已经完成了这项工作。