Difference between + and - methods in Objective-c

Viewed 14483

What is the difference between methods that are declared with - and methods that are declared with +

e.g

- (void)methodname

+ (void)methodname
5 Answers

Methods prefixed with - are instance methods. This means they can only be invoked on an instance of a class, eg:

[myStringInstance length];

Methods prefixed with + are class methods. This means they can be called on Classes, without needing an instance, eg:

[NSString stringWithString:@"Hello World"];

minus are instance methods (only accessible via an instantiated object)

plus are class methods (like in Java Math.abs(), you can use it without an instantited object)

According to this page:

Instance methods begin with - and class level methods begin with +

See this SO question for more information.

The first is an instance method and the second is a class method. You should read Apple's Objective-C documentation to learn about the difference.

Related