8

NSDictionariesを含む2 つがありNSStringsます。この 2 つの辞書を比較するには、isEqualToDictionary:メソッドを使用します。ドキュメントはisEqualToDictionary:言う

「2 つのディクショナリは、それぞれが同じ数のエントリを保持し、特定のキーについて、各ディクショナリ内の対応する値オブジェクトが isEqual: テストを満たす場合、等しい内容を持ちます。」

だから、私の文字列はメソッドによって比較されisEqual:ます。

問題は次の
とおりisEqual:ですNSString

から使用isEqual:NSObjectますか?を使用してアドレスを比較するだけisEqualでそれを読みました。この考えを証明または反証するために、私はサンプルを書きました:NSObject==

NSString *str1 = @"sampleString";
NSString *str2 = [NSString stringWithFormat:@"%@", @"sampleString"];
BOOL result = [str1 isEqual:str2];

は、とのアドレスresultは異なります。 したがって、 from を使用しない(これよりも?) か、または'sはアドレスの等価性をチェックするよりも複雑なことを行います。YESstr1str2
isEqual:NSObjectNSObjectisEqual:

それが実際にどのように機能するか知っている人はいますか?

4

3 に答える 3

10

NSStringオーバーライドisEqual:して文字列を適切に比較するため、この方法で辞書を比較しても問題ありません。

于 2013-07-19T23:47:48.333 に答える