Difference between "+" and "-" before function name in Objective-C
+
defines a class method
Class methods belong to the class itself, not instances of the class.
Example: [AppDelegate someMethod]
-
defines an instance method
Example [[[UIApplication sharedApplication] delegate] someMethod]
One way to describe the difference is that -
methods operate on objects, while +
methods operate on the class itself.
Say your class was named MyClass
, and you created an instance of it and stored it into a variable called myInstance
:
- (void)continueSpeaking
can be called like so: [myInstance continueSpeaking]
.
However, the method + (NSArray *)availableVoices
can only be called like so: [MyClass availableVoices]