为什么我们在iOS中的方法名称前加上“+”或“ - ”符号

时间:2012-10-05 10:00:53

标签: iphone objective-c ios ipad

  

可能重复:
  Objective-C: Class vs Instance Methods?

为什么我们在iOS中的方法名称前加上'+'或' - '符号。请帮我解决标志逻辑,有什么不同之处?

5 个答案:

答案 0 :(得分:7)

与标志无关;

+表示该方法是一个类方法,也就是说,它在类本身上运行(或者更确切地说,它的作用域),而不是实例。许多其他语言中的相应内容是static

-表示该方法是一个实例方法,即它在类的实例上运行。

答案 1 :(得分:3)

`@interface MyClass : NSObject
{
}

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

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

@end` 

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

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

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

答案 2 :(得分:2)

减号-表示实例method。加号+class method

答案 3 :(得分:2)

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

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

答案 4 :(得分:1)

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

有关详细信息,请参阅this(以及许多其他)SO帖子。