2

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

任何帮助将不胜感激。

4

2 回答 2

6

问题是,您正在比较字符串和日期。如果你看一下newDate,你会发现它是 aNSString而不是 a NSDate。如果在compare:上使用方法NSDate,则两个对象都必须是NSDate's。st查看您的代码,它看起来NSDate对应于newDate(尽管您的命名似乎有点奇怪),尝试today使用它而不是newDate

于 2012-07-10T12:03:59.933 回答
-1

您正在尝试将日期对象与字符串进行比较。您需要与日期对象进行比较。

[today compare:newDate] == NSOrderedDescending)

newDate应该是一个 NSDate 实例。我已经完成了这个及其工作。

于 2012-07-10T12:09:54.777 回答