问题
Say I have an NSSet
with a string in it. If I send containsObject:
with another string which is a different pointer but the exact same string value, will that return YES
?
Also, is it the same story when it comes to removeObject:
? I.e., different objects with different pointers but the same string values will cause removal?
回答1:
-containsObject:
uses -isEqual:
(and -hash
) for equality testing. This applies to -removeObject:
as well, and any other operations in NSSet
that depend on some notion of equality.
来源:https://stackoverflow.com/questions/8410606/does-nssets-containsobject-test-for-pointer-equality-or-value-equality