のiOS 5の前に、私はearlierDate
から返された日付を確認するために==
演算子を使用することができ問題5
if ([[aDate earlierDate:bDate] isEqualToDate:aDate])
[someone doSomething];
を
これはなぜそうでしょうか?
実際には、isEqualToDate:
を使用して比較する場合は==
を使用し、earlierDate:
を使用する場合は問題が発生します。
のiOS 5の前に、私はearlierDate
から返された日付を確認するために==
演算子を使用することができ問題5
if ([[aDate earlierDate:bDate] isEqualToDate:aDate])
[someone doSomething];
を
これはなぜそうでしょうか?
実際には、isEqualToDate:
を使用して比較する場合は==
を使用し、earlierDate:
を使用する場合は問題が発生します。
ポインタ比較(==
)を使用していたので、オブジェクトの比較方法を使用する必要がありました。つまり、以前のバージョンのiOSでは、earlierDate:
メソッドは、以前渡したオブジェクトを返します。さて、新しいオブジェクト(以前の日付と同じデータ)を作成して返します。
isEqualToDate:
の方が適しているため、ポインタの比較のように壊れにくいので、より適切です。
どのようなエラーが表示されますか?私はちょうどiOS 5の目標のためのiOS 5のapp建物にこのコードを落としました、そして、コンパイラかランタイムエラーはありません。 –
エラーはありません。 '=='比較はiOS 5の前に予想される動作を与えていました。同じ動作を見るために、私は 'isEqualToDate:'を使う必要があります。 – raheel