Hello Everyone,
What is the difference between "+" and "-" before the function name interface declaration in an Objective-C program. Example:
- (void)continueSpeaking;
+ (NSArray *)availableVoices;
What's the difference?
Hello Everyone,
What is the difference between "+" and "-" before the function name interface declaration in an Objective-C program. Example:
- (void)continueSpeaking;
+ (NSArray *)availableVoices;
What's the difference?
+
defines a class method
Class methods belong to the class itself, not instances of the class.
Example: [ AppDelegate someMethod ] //someMethod is a class method
-
defines an instance method
Example [ [ [ UIApplication sharedApplication ] delegate ] someMethod ] // someMethod is an instance method
The best 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 by calling alloc/init
, and stored it in a variable called myInstance
:
- (void)continueSpeaking
can be called like this: [ myInstance continueSpeaking ]
.
However, this method + (NSArray *)availableVoices
can only be called like this: [ MyClass availableVoices ]
.