作者iasm (魔术研究员)
看板MacDev
标题[问题] 类别方法与实体方法到底有什麽差别?
时间Thu May 6 11:27:49 2010
我从书上看到
-(void) method;是一个实体方法
+(void) method1;是一个类别方法
但是我不太了解的是
我在书上看到一个范例
@interface Fraction: NSObject
{
int numerator;
int denominator;
}
-(void) somemethod;
-(void) somemethod1;
-(void) somemethod2;
@end
今在使用Fraction此定义的类别时
一定会呼叫
Fraction *frac1=[ [Fraction alloc] init];
[Fraction alloc]此为Fraction使用一类别方法 alloc 配置记忆体
完成後,[Fraction alloc]即为一(实体)instance
并再使用实体方法 init
但我的问题就在於在我当初定义Fraction此类别,并没有”定义”alloc与init方法
当然我有看到范例是有在自行定义的类别中定义init方法
所以我猜想,因为Fraction类别是继承至NSObject类别
而NSObject类别中,有定义一类别方法alloc及一实体方法,它们都是初始化所必须的
但是我们也可以在自已定义的类别,例(Fraction)中overide alloc及init,目的是产生我们需要的特定功能,例如在init中给予成员变数特定的”初值”
请问各位,我这样对类别方法与实体方法的理解是正确的吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.96.39.8