isEqual:
とisEqualToString:
の違いは何ですか?NSString:isEqualとisEqualToStringの比較
なぜ、isEqual:
をオーバーライドするのではなく、isEqualTo *メソッド(NSArrayの場合はisEqualToArray、NSDataの場合はisEqualToData)を追加するクラスはありますか?
isEqual:
とisEqualToString:
の違いは何ですか?NSString:isEqualとisEqualToStringの比較
なぜ、isEqual:
をオーバーライドするのではなく、isEqualTo *メソッド(NSArrayの場合はisEqualToArray、NSDataの場合はisEqualToData)を追加するクラスはありますか?
isEqual:
オブジェクトに文字列を比較し、場合NO
を返します。オブジェクトは文字列ではありません。あなたは、両方のオブジェクトが文字列である知っていればisEqualToString:
はdocumentation状態として、高速である:
特別な考慮事項
あなたは、両方のオブジェクトが文字列である知っている、この方法は
isEqual:
よりも平等をチェックするためのより高速な方法です。
は、等価性の特定のチェックを行うために使用されます。例えば; isEqualToArray:
は、配列に等しい数のオブジェクトが含まれていること、および指定されたインデックスのオブジェクトがテストの場合はYES
を返すことを確認します。
マイ推測は、それがisEqualToStringとして、わずかな性能向上を提供することである:型チェックするに渡されたものはありません
あなたの推測はおそらく本当です:) – Philip007
また、あなた自身の-isEqual:
と-isEqualTo<Class>:
メソッドを書くために、大会は-isEqual:
の引数nilを許すと@Abizernと@ジョナサンダン答えに拡大-isEqualTo<Class>:
あなたが知っているドキュメントは、これまでに見つけられませんでしたか? –
これは、isEqualToStringの場合は当てはまりません.isEqualToStringは、nilを渡すとNOだけを返します。 –
興味深いことに、Cocoa Fundamentals Guide –
にnilを引数の例外を発生することで、両方のisEqual
とisEqualToString
はnil
値で動作します。
- (void)testStringEqual {
NSString *string = nil;
STAssertFalse([string isEqual:@"test"], @"NSString isEqual");
STAssertFalse([string isEqualToString:@"test"], @"NSString isEqualToString");
// Note that these both return NO
STAssertFalse([string isEqual:nil], @"NSString isEqual");
STAssertFalse([string isEqualToString:nil], @"NSString isEqualToString");
string = @"test";
STAssertTrue([string isEqual:@"test"], @"NSString isEqual");
STAssertTrue([string isEqualToString:@"test"], @"NSString isEqualToString");
STAssertFalse([string isEqual:nil], @"NSString isEqual");
STAssertFalse([string isEqualToString:nil], @"NSString isEqualToString");
}
非常にお勧めしますthis。 isEqualToStringのパフォーマンス上の利点は、ほとんどのアプリケーションでは基本的に無視できます。しかし、他の二つの違いがあり、著者は述べて:
nil
は2人でnilを処理する方法に違いはありません。受信者または引数またはその両方である必要はありません。 – SayeedHussain
あなたはアーロン・ヒレガスが、その後何のパフォーマンスの差がないと考えられる場合に処理されます、ちょっとしたタイプのsafty:http://blog.bignerdranch.com/334-isequal-vs-isequaltostring/ – Caro
リンクありがとう - 役に立つ。 Mark Dalrympleを信じるように私たちに依頼していますが、私は誰ですか? – Abizern