2011-09-22 42 views
3

没有自动引用计数,你经常写这样的代码实现方便的构造,加入了新的类时:自动引用计数

假设的类名是“富”

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

- (id) init 
{ 
    self = [super init]; 
    // do some initialization here 
    return self; 
} 

嘛,你怎么样假设,写这个弧? 就像下面的代码?

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

- (id) init 
{ 
    self = [super init]; 
    // do some initialization here 
    return self; 
} 
+1

请注意,您应该在便利构造函数中真正使用'self'而不是'Foo',以便子类正常工作。参见例如http://stackoverflow.com/questions/5987969/objective-c-self-allocating-objects/5988016#5988016 –

+0

是的,你是对的,我在做真正的代码,只是在示例代码中完全忘了它。将解决。 – Kaiserludi

回答

1

是的。你期待有什么不同吗?

+0

嗯,只是想知道,因为我没有找到任何关于方便构造函数的特殊信息。有趣的是,它现在几乎没有区别,使用了两种变体中的哪一种。 – Kaiserludi

+0

我期望ARC能够在被忽略这么长时间之后复活新的。 –

+0

无论你在构造函数的开头是否有“init”这个词,它是不是有着令人难以置信的重要性? –