在objective-c中加上(+)与减号( - )

Sno*_*uin 21 objective-c ios

可能重复:
方法旁边的Objective C中加号和减号的含义是什么?

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

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

谢谢!

Dim*_*ima 31

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

所以假设你有一个叫做的类Person,以及以下函数

-(void)doSomething;

+(void)doSomethingElse;

您可以使用以下命令调用这些函数:

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

[myPerson doSomething];

[Person doSomethingElse];

假设您理解类与实例的概念,这更多是语法描述.

编辑:

只是添加:在objective-C中,你实际上可以在一个实例上调用一个类函数,但效果与在类本身上调用它没有区别(基本上编译为同一个东西).

所以你可以做到

[myPerson doSomethingElse]

一般来说,你不会这样做,因为它令人困惑和误导阅读.我指出它,所以如果你遇到这样的代码,你不会感到惊讶.


Sco*_*sak 26

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

有关完整说明,请参阅此答案. 类和实例方法之间有什么区别?


Nic*_*ico 6

成员和公共职能分别.

这样

id object = [[NSObject alloc] init];
+ (id)alloc;
- (id)init;
Run Code Online (Sandbox Code Playgroud)

其中NSObject是一个类,而id是一个对象

如果您曾经使用过C++,那么+等同于静态