7

我對蘋果材料感到困惑。ARC與MRC的區別

有3種方式,我們管理內存,它們分別是:

  1. 自動計數全球化志願服務青年。
  2. 手動引用計數。
  3. 垃圾收集。

我的疑問是自動引用計數和手動參考計數之間的區別。

有人可以解釋我嗎?

+0

[新的自動引用計數機制如何工作?](http://stackoverflow.com/questions/6385212/how-does-the-new-automatic-reference-counting-mechanism-work) – 2012-02-02 15:57:52

回答

14

在ARC中,您不必釋放/自動釋放由您分配的內存,因爲在手動的情況下您必須處理此問題。 例如說明書的情況下

-(void)someMethod 
{ 
    NSMutableArray *arr = [[NSMutableArray alloc] init]; 
    //use array 
    [arr release]; //when array is in no use 
} 

弧形錶殼

-(void)someMethod 
{ 
    NSMutableArray *arr = [[NSMutableArray alloc] init]; 
    //use array 
} 
+0

Ok.Thank U.他們之間有什麼區別嗎? – user1157838 2012-02-02 10:01:26

+0

@ user1157838:是的,請注意ARC案例中沒有[arr release] ;.另請注意,在iOS上垃圾收集不可用。 – Bogatyr 2012-02-02 10:10:47

+0

有沒有使用ARC的設置? – user1157838 2012-02-02 10:17:38

2

在ARC的OS看起來內存管理後,所以你不必擔心釋放的對象。對於初學者來說這非常整齊。而在手動計數中,你將不得不跟蹤釋放內存,如果你沒有做到這一點,你最終會崩潰你的應用程序。 ARC和MRC可用於ios,垃圾收集僅限於MAC-OSX,希望這有助於。因德爾舉了一個很好的例子。

+0

在任何版本的ARC支持與否? – user1157838 2012-02-02 10:18:58

+0

arc可用於sdk 4.2 – 2012-02-02 10:20:42

+0

U意味着從sdk 4.2開始,不需要釋放對象。我們可以創建任意數量的對象。我是否正確? – user1157838 2012-02-02 10:22:57