-1

可能重复:
Objective-C:类与实例方法?
Objective-C - 类方法和静态方法之间的区别?

在 ObjC 中,方法名称前的单破折号表示它是实例方法。方法名称前的加号表示它是类方法。但是编程有什么区别?

4

3 回答 3

2

类方法和实例方法之间的区别在于,实例方法需要(通常)操作的类的实例。调用实例方法的消息必须发送到类的实例。

类方法最常见的单一用途可能是对象工厂。您发送给类的消息以创建根据您发送的参数配置的实例。例如,在 Cocoa 中,NSString 类有几个名为 stringWithSomethingOrOther: 的类方法,它们将创建一个新的 NSString 对象并将其交还给您。

另一方面,NSString有许多实例方法——没有实际实例可以使用的操作实际上没有任何意义。一个常用的方法可能是 length 方法,它告诉您消息发送到的特定 NSString 实例中有多少个字符。

也看到这个。 类方法和实例方法有什么区别?

于 2012-11-01T06:58:14.743 回答
0

在对象上调用实例方法。在类上调用类方法。

例如这一行:

SomeClass *object = [[SomeClass alloc] init];

在这里您可以看到“alloc”适用于“SomeClass”而不是“object”。

鉴于: [object callMyFunction];将作用于“对象”而不是“类”。这是一个实例方法。

于 2012-11-01T06:57:42.343 回答
0

与这两者的主要区别在于前者,即在它仅由声明它的类的实例调用之前使用单个破折号,即必须创建该类的一个实例意味着该类的一个对象并且使用.一个可以调用实例方法

在类方法中,后一种可以直接使用类名调用。要调用类方法,不需要任何对象。

请参考苹果开发者文档中的这个链接

于 2012-11-01T06:57:58.970 回答