2011-09-22 45 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」這個詞,它是不是有着令人難以置信的重要性? –