How do I compare two objects of a custom class? My idea was to add an additional method to the class in which I can compare the current object with another object of the same kind.
So I can write my own code how each field of the class is compared.
This is how I would do it. Or are there some predefined methods to do that? Like "isEqualTo" of the NSString class?
The pointers to
-isEqual: are good, but if you implement
-isEqual:, you absolutely must also implement
-hash in such a way that if two objects return
-isEqual: they will also return the same value for
isEqual: without also implementing
-hash leads to some very surprising bugs when you use Collections like NSArray.
For new developers, I tend to recommend against overloading
-isEqual:. I recommend instead using the same technique as NSString, and create a custom
Foo is your class) until you understand the impact of
-isEqual: on collections and specifically want this behavior. Overloading
-isEqual: powerful, but the bugs you can create are subtle. Creating your own custom comparator is safer and clearer in many cases.