类方法和实例方法之间的区别是什么。为什么我们需要单独使用它们? 有人可以解释一下吗?
类和实例方法
•实例响应实例方法
- (id)init;
- (float)height;
- (void)walk;
•类响应类方法
+ (id)alloc;
+ (id)person;
+ (Person *)sharedPerson;
泰穆尔
答案 0 :(得分:6)
实例方法仅适用于类的实例,而类方法不需要实例但可在类中使用。
类方法由+
表示,而实例方法在返回类型之前由-
表示。
我们以NSObject
为例。 NSObject
有一个名为+ (id)alloc
的类方法。 alloc方法用于分配类的实例。显然,alloc必须是一个类方法,因为如果它是一个实例方法,你会从哪里得到“root”实例?
另一方面,- (id)init
是一个实例方法,因为它初始化了一个实例的状态。
答案 1 :(得分:5)
答案 2 :(得分:0)