【问题标题】:Objective-C: What does "+(CCScene *)function { ... } mean? [duplicate]Objective-C:“+(CCScene *)function { ... } 是什么意思?[重复]
【发布时间】:2012-06-03 19:33:08
【问题描述】:
【问题讨论】:
标签:
objective-c
cocos2d-iphone
【解决方案1】:
实例方法(或者更确切地说是 Objective-C 中的消息)以 - 开头。类方法以+ 开头。不同的是,实例消息可以发送给某个类的对象,而类消息是发送给类本身。
假设您有一个名为 Country 的类。然后您可能会收到一个实例消息name 或area,它将返回您的 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?”。