我是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/

10-09 09:37