问题
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