如果我對已經初始化和分配的對象調用[alloc] init]
會發生什麼?Objective-C - 初始化已經初始化的對象?
在我的具體情況我有使用NSMutableArray
我在超Parent
初始化NSMutableArray* someArray = [NSMutableArray alloc] init];
在子類中Child
我需要someArray
,但在特定的索引中插入的對象,例如3
因此,如果數組沒有項目,或者如果它的項目少於我試圖插入的索引(數組有4項,我想插入索引10),它會崩潰。
如果我在Child
類中再次初始化someArray
會發生什麼?將存儲在someArray
中的指針替換爲正在初始化的新的指針,而「舊」指針只會泄漏?
編輯:
對不起,我的術語是有點過。我不是說要做[someObject alloc]
,而是做someObject = [SomeClass alloc] init];
其中someObject
以前曾經用SomeClass
無論如何,它只會因'無法識別的選擇器異常而崩潰 - '+ alloc'不是實例方法。 – 2012-09-18 18:16:33
我並不是指在'someArray'上調用'alloc',我的意思是調用'someArray = [NSMutableArray alloc] initWithCapacity:1000]',例如,其中'someArray'已經在父類中初始化。 – jere