【问题标题】:Why we put '+' or '-' sign in front of method name in iOS [duplicate]为什么我们在 iOS 中的方法名称前加上“+”或“-”符号 [重复]
【发布时间】:2012-09-26 11:19:04
【问题描述】:

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

为什么我们在 iOS 中的方法名称前加上“+”或“-”号。请帮助我了解符号逻辑,这有什么区别?

【问题讨论】:

  • 是的,但为了确认和更多解释,我想问一下。
  • 没问题,可以要求更多的规范。
  • "+" 表示它是一个类方法,可以通过类名直接访问。 “-”表示,它是一个实例方法,可以被类实例访问。

标签: iphone objective-c ios ipad


【解决方案1】:

与符号无关;

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

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

【讨论】:

  • 感谢所有朋友:)
【解决方案2】:
`@interface MyClass : NSObject
{
}

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

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

@end` 

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

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        【解决方案5】:

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

        有关更多信息,请参阅this(和许多其他)SO 帖子。

        【讨论】:

          猜你喜欢
          • 2012-01-04
          • 2019-06-27
          • 1970-01-01
          • 2014-01-26
          • 1970-01-01
          • 2017-05-29
          • 1970-01-01
          • 2011-05-08
          • 2013-06-26
          相关资源
          最近更新 更多