关于iPhone:为什么在iOS中把”+”或”-“符号放在方法名前面

Why we put '+' or '-' sign in front of method name in iOS

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Objective-C: Class vs Instance Methods?

为什么在iOS中把"+"或"-"符号放在方法名前面。请帮我看一下符号逻辑,这有什么区别?


它与符号无关;

+表示方法是一个类方法,也就是说,它操作(或者更确切地说,它的作用域是)类本身,而不是实例。在许多其他语言中,对应的东西是static

-表示该方法是一个实例方法,即对类的实例进行操作。


1
2
3
4
5
6
7
8
9
`@interface MyClass : NSObject
{
}

+(id) someMethod;  // declaration of class method

-(id) someMethod;  // declaration of instance method

@end`

实例方法应用于类的实例,因此它们需要应用对象,并且可以访问调用方的成员。

另一方面,类方法应用于整个类,它们不依赖任何对象。

检查此链接以获取正确的知识链接


前导+符号表示类方法,-符号表示实例方法。

旁注:这里不应该问这个问题-请仔细阅读该教程。


负号-表示实例方法。加号+是一种类方法。


-前缀表示实例方法,+前缀表示类(或静态)方法。

更多信息,请参阅本文(以及其他许多文章)。