【问题标题】:Objective-C: What does "+(CCScene *)function { ... } mean? [duplicate]Objective-C:“+(CCScene *)function { ... } 是什么意思?[重复]
【发布时间】:2012-06-03 19:33:08
【问题描述】:

可能重复:
What do the plus and minus signs mean in Objective C next to a method?

随着我对 iOS 的不断了解,我发现+(CCScene *)function {...} 在我正在使用的示例代码的早期行中。我知道方法是用- 在Obj-C 中实现的,如以下方法:-(ObjectType*)function {...},但我很好奇,在明显的函数实现之前的+ 表示什么?

【问题讨论】:

标签: objective-c cocos2d-iphone


【解决方案1】:

实例方法(或者更确切地说是 Objective-C 中的消息)以 - 开头。类方法以+ 开头。不同的是,实例消息可以发送给某个类的对象,而类消息是发送给类本身。

假设您有一个名为 Country 的类。然后您可能会收到一个实例消息namearea,它将返回您的 Country 实例的名称或区域。

NSString *name = [someCountry name];
// name could be "Germany" or "France" for instance.

您可能还有一个 numberOfCountries 类消息,它将返回 Country 实例的总数。

int totalCount = [Country numberOfCountries];

【讨论】:

    【解决方案2】:

    “+”表示类方法,“-”表示实例方法。因此,+(CCScene *)function {...} 是一个类方法。

    实例方法对对象进行操作并可以访问其实例变量,而类方法对整个类进行操作并且无法访问特定实例的变量(除非您将实例作为参数传入)。

    有关详细信息,请参阅 Stackoverflow 上的“Class vs Instance Methods?”。

    【讨论】:

      猜你喜欢
      • 2013-09-02
      • 1970-01-01
      • 2012-07-04
      • 2016-02-14
      • 2013-08-25
      • 2012-09-29
      • 2013-11-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多