差异类和实例方法

Tai*_*mal 5 methods conventions objective-c

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

类和实例方法

•实例响应实例方法

 - (id)init;
 - (float)height;
 - (void)walk;
Run Code Online (Sandbox Code Playgroud)

•类响应类方法

 + (id)alloc;
 + (id)person;
 + (Person *)sharedPerson;
Run Code Online (Sandbox Code Playgroud)

泰穆尔

Joh*_*lph 6

实例方法仅在类的实例上可用,而类方法不需要实例但在类上可用.

类方法由+while实例表示,方法-在返回类型之前用a表示.

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

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


sha*_*der 5

一个例子:

Human- > Class You- >Instance

Human可以extinguish,you不可以. You可以drink a Coke,Human不可以.

Instance 方法仅适用于个人,

虽然Class方法适用于具有相同可识别特征的整个组.

这是一个人与众不同,个人与整个社会的区别.

[SomeClass alloc] 意味着一个新的类实例就像你生完孩子一样诞生,

init适用于a Instance,就像你的父母给你一个名字一样,喂你并送你去学校,这样你就有了在这个社会生活的技能.