我是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]
任何帮助将不胜感激。
最佳答案
问题是,您正在比较字符串和日期。如果查看newDate
,将会看到它是NSString
而不是NSDate
。如果在compare:
上使用NSDate
方法,则两个对象都必须是NSDate
的对象。查看您的代码,看起来st
是与NSDate
对应的newDate
(尽管您的命名似乎有些奇怪),请尝试使用today
而不是newDate
关于iphone - 比较iPhone中的两个NSDate,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11412852/