2011-04-23 69 views

回答

1

首先,您提到的方法都是實例方法,而不是類方法。即,它們只能被稱爲上的NSMutableArray的實例分類 -

NSMutableArray* i = [NSMutableArray arrayWithCapacity:1]; 
[i removeAllObjects]; 

,或者

NSMutableArray* j = [[NSMutableArray alloc] initWithCapacity:1]; 
[j release]; 

​​,井,清空陣列,併發送一個消息release從卸下的每個對象陣列。但是,數組對象本身仍然存在,您可以通過執行[i addObject:obj]將項添加到其中,其中obj是有效的對象。

release另一方面,放棄對數組對象的控制,並將其保留計數遞減1.當對象的保留計數達到0時,它將從內存中解除分配。數組對象的取消分配將導致release消息被髮送到存儲在數組中的每個對象。

arrayWithCapacity方法創建i作爲自動釋放對象,並且您不要調用release就可以了。如果這樣做並且導致對象爲dealloc -ed,則在NSAutoReleasePool對象將消息發送給release消息時,它將在稍後引發異常。

相關問題