2

私はiPhone開発者の初心者ですが、

2 つの日付を比較したいのですが、最初の日付はデータベースから取得さnewDateれ、2 番目は今日の日付です。

今日が大きい場合は、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ことがわかります。メソッド onを使用する場合、両方のオブジェクトが である必要があります。あなたのコードを見ると、(あなたの命名は少し奇妙に思えますが)に対応しているように見えますが、代わりにそれを試してくださいNSStringNSDatecompare:NSDateNSDatestNSDatenewDatetodaynewDate

于 2012-07-10T12:03:59.933 に答える
-1

日付オブジェクトを文字列と比較しようとしています。日付オブジェクトと比較する必要があります。

[today compare:newDate] == NSOrderedDescending)

newDateNSDate インスタンスである必要があります。私はこれとその作業を行いました。

于 2012-07-10T12:09:54.777 に答える