Does NSSet's containsObject: test for pointer equality or value equality?

Chris picture Chris · Dec 7, 2011 · Viewed 10.4k times · Source

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?

Answer

Lily Ballard picture Lily Ballard · Dec 7, 2011

-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.