I think that you are trying to understand objective-c associating it with OOP programming languages like Java or C++, which I don't recommend. With time passing you will understand and like the Objc approach, it took me 6 months to really enjoy it, and now I only enjoy ObjC development :p.
Anyway the ObjC man. says the following:
The method’s actual name
(insertObject:atIndex:) is a
concatenation of all of the signature
keywords, including colon characters.
The colon characters declare the
presence of a parameter. If a method
has no parameters, you omit the colon
after the first (and only) signature
keyword. In this example, the method
takes two parameters.
Source: Methods and Messaging
Edit
The ObjC way of naming its methods, I like it better because I don't have to think about a method name, but about what messages ("represented by other objects") I want to send to object A so that I get what I want from it;
NSArray *list = [object_a fromCategory:@"Literature" authorsStartingWith:@"Em"];
or
NSArray *list2 = [object_a fromCategory:@"Literature" authorsStarginWith:@"EM" fromCentury:@"16"]
Try to use natural language and translate the message to object_a, something like:
"Hey object a give me from category Literature all the authors stargin with "em" and which are from cetury 16" - This is the Message - you don't need a separate method Name - all together can be seen as a method name (as the man says).
Do you get now how elegant and Clear is ObjC way to do what you used to call "method overloading"?