关于IOS:在objective-c中加上(+)与减号( – )

plus (+) versus minus (-) in objective-c

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

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

在Objective-C中使用加号或减号有什么区别?

例如,大多数时候代码启动-(void)somethingSomethingelse,但有时会是+(void)somethingSomethingelse

谢谢!


-函数是实例函数,+函数是类(静态)函数。

那么假设您有一个名为Person的类,以及以下函数

-(void)doSomething;

+(void)doSomethingElse;

您可以使用以下方法调用这些函数:

Person *myPerson = [[Person alloc] init];

[myPerson doSomething];

[Person doSomethingElse];

这更像是一种语法描述,假设您了解类与实例的概念。

编辑:

只需添加:在Objective-C中,实际上可以在实例上调用类函数,但其效果与在类本身上调用它(本质上编译为相同的东西)没有什么不同。

所以你可以这样做

[myPerson doSomethingElse]

一般来说,你不会这样做,因为读起来容易混淆和误导。我指出来了,所以如果在某个地方遇到这样的代码,您不会感到惊讶。


简而言之,(+)是一个类方法,而(-)是一个实例方法。

请参阅此答案以获得完整的解释类方法和实例方法有什么区别?


成员职能和公共职能。

这样

1
2
3
id object = [[NSObject alloc] init];
+ (id)alloc;
- (id)init;

其中nsObject是类,id是对象

如果你曾经使用过C++,A+就相当于静态的。