差异类和实例方法

时间:2010-07-14 10:17:43

标签: objective-c methods conventions

类方法和实例方法之间的区别是什么。为什么我们需要单独使用它们? 有人可以解释一下吗?

类和实例方法

•实例响应实例方法

 - (id)init;
 - (float)height;
 - (void)walk;

•类响应类方法

 + (id)alloc;
 + (id)person;
 + (Person *)sharedPerson;

泰穆尔

3 个答案:

答案 0 :(得分:6)

实例方法仅适用于类的实例,而类方法不需要实例但可在类中使用。

类方法由+表示,而实例方法在返回类型之前由-表示。

我们以NSObject为例。 NSObject有一个名为+ (id)alloc的类方法。 alloc方法用于分配类的实例。显然,alloc必须是一个类方法,因为如果它是一个实例方法,你会从哪里得到“root”实例?

另一方面,- (id)init是一个实例方法,因为它初始化了一个实例的状态。

答案 1 :(得分:5)

答案 2 :(得分:0)

  1. 使用静态变量
  2. 代表' +'符号
  3. 可以直接使用类调用而无需创建类的实例
  4. 类中的Self方法表示类本身,但实例方法中的self表示类的特定实例。