1

Java には .equals() メソッドがあります。== を使用したくないので、Objective-C で同等のものは何ですか?

たとえば、2 つの配列を比較したい場合は、それらを調べて、それらのオブジェクトが一致するかどうかを確認します。

for (int i = 0; i < array1.count; i++) {
    if (array1[i].equals(array2[i])) {
      do something
      }
}
4

1 に答える 1

2

あなたの質問に対する厳密な答えは「使用する-isEqual:」です。

if ([array1[i] isEqual:array2[i]]) { ...

とはいえ、2 つの配列が等しいかどうかを判断しようとしている場合は、間違った方法で行っています。すべての要素をペアで比較する代わりに、配列が等しいかどうかを確認します。

if ([array1 isEqual:array2]) { ...

などの一部のクラスNSArray*は、比較対象のオブジェクトの型を制限する特殊な等価メソッドも提供します。ほとんどの場合、コードにセマンティックな意味を追加するために使用されます。使いたい場合は、次のようになります

if ([array1 isEqualToArray:array2]) { ...

このスタイルを使用する場合は、比較するオブジェクトが実際に正しいクラスでなければならないことに注意してください。

于 2013-03-01T00:07:51.347 に答える