如何合并+ alloc和-init?

时间:2012-07-30 17:43:33

标签: objective-c methods nsobject

我正在为NSObject的子类编写一个方法,它合并了常见的NSObject方法“+ alloc”和“-init”。这是为了在创建类的实例时节省时间。

(这个子类也是一个抽象类。它类似于子类化NSObject的替代,因此该方法必须与子类兼容。)

对于方法“make”,这是编写它的最佳方式:

+(id)make
{
    id newObject = [[self.class alloc] init];

    return newObject;
}

如果有更好的方法,它会是什么?

由于

4 个答案:

答案 0 :(得分:6)

更好的方法是使用已经存在的+new:)

答案 1 :(得分:3)

您可以使用[self.class new],这与调用[[self.class alloc] init]

相同

答案 2 :(得分:2)

我发现new效果很好。

SomeObject *object = [SomeObject new];

答案 3 :(得分:1)

为了简单起见:

id newObject = [[self alloc] init];

您可以将其替换为:

id newObject = [self new];

但请记住,在许多已定义的对象中,您可以使用其他初始化程序,然后您需要使用:

...alloc] init...]

结构。