关于cocos2d iphone:objective-c:什么是”+(ccscene*)函数…的意思?

Objective-C: What does "+(CCScene *)function { … } mean?

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

Possible Duplicate:
What do the plus and minus signs mean in Objective C next to a method?

在我继续了解iOS的过程中,我在我所使用的示例代码的早期行中遇到了这样一个问题:+(CCScene *)function {...}。我知道方法是用-在bj-c中实现的,就像下面的方法一样:-(ObjectType*)function {...},但是我很好奇,在明显的函数实现之前的+表示什么?


实例方法(或者更确切地说,Objective-C中的消息)从一个-开始。类方法以+开头。区别在于,实例消息可以发送到某个类的对象,而类消息则被发送到类本身。

假设你有一个叫做国家的班级。然后您可能会收到一条实例消息namearea,它将返回您的国家/地区实例的名称或区域。

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

您还可能有一个numberOfCountries类消息,它将返回国家/地区实例的总数。

1
int totalCount = [Country numberOfCountries];

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

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

有关详细信息,请参阅"类与实例方法"?在StackOverflow上。