What is the difference between isEqual:
and isEqualToString:
?
Why are classes adding isEqualTo* methods (isEqualToArray for NSArray, isEqualToData for NSData, ...) instead of just overriding isEqual:
?
isEqual:
compares a string to an object, and will return NO
if the object is not a string. isEqualToString:
is faster if you know both objects are strings, as the documentation states:
Special Considerations
When you know both objects are strings, this method is a faster way to check equality than
isEqual:
.
isEqualTo<Class>
is used to provide specific checks for equality. For instance; isEqualToArray:
checks that the arrays contain an equal number of objects, and that the objects at a given index return YES
for the isEqual:
test.