The method signature
- (NSString *):name
breaks down to the following:-
It is an instance method (versus a class method with a+
).(NSString *)
It returns a string.:
If you were to speak the name of this method, it would simply be called "colon".:
tells the compiler that your method accepts one parameter as well.name
There is a parameter called name.
Note: When you don't specify a type, the compiler assumes you meantid
, so this method actually fleshes out to be- (NSString *):(id)hello
A valid call to this method would be:
[self :@"hello"]
.You can do really weird things because
You could, if you really wanted to, have a method called
You'd call it like so:
:
is a valid name for a method, and the compiler assumes id
.You could, if you really wanted to, have a method called
- (id):::
. The compiler would assume you meant - (id):(id):(id):(id)
, a method that returns an object of type id
and takes three parameters of type id
.You'd call it like so:
[self :@"hello" :anObject :myObject];
Note: Usually, if you see a ':' with no type it will be a case like - (float)addThreeValues : : : This method returns float and takes 3 parameters. This would be an appropriate definition because the three values don't matter what order they are provided because we are just adding them.