2011-11-20 66 views

回答

3

这将实例化对象并将其返回。遵循命名约定,您需要将其设为autorelease'd对象,并返回。

+ (id)fraction 
{ 
    return [[[self alloc] init] autorelease]; 
} 

要使用它

Fraction *fraction = [Fraction fraction]; 

这遵循相同的模式作为苹果提供的类例如

NSArray *myArray = [NSArray array]; 
+0

+1这是我怎么会做它。 :) –

+0

确实。删除了我的冗余(和较少)答案。 – jrturton

0
+(Fraction *) fraction 
{ 
    return [[[Fraction alloc] init] autorelease]; 
} 

,然后你可以使用

Fraction *frac = [Fraction fraction]; 

这种风格采用了大量的目标C

+0

如果你想子类'Fraction',会发生什么? –

+0

@ Paul.s:那么你必须自己提供这样的类方法。它不合逻辑地调用'[Derived base]'而是'[Derived derived]' – Dani

+0

这听起来不太干。就像你会再次写同样的方法一样? –