Zielsetzung C 2.0 Garbage Collector VS Automatischer Referenzzähler im IOS 5 SDK

7

Ich frage mich nur, ob jemand weiß, was der Unterschied zwischen Objective C 2.0 ist Garbage Collector und neuer automatischer Referenzzähler im IOS 5 SDK?

verwendet IOS 5 SDK auch Objective C 2.0?

Hinweis: Was ich meine Ziel C 2.0 - Ich sah von diesem Link Ссылка

Danke

    
kkurni 26.10.2011, 08:11
quelle

2 Antworten

13
  

Ich frage mich nur, ob jemand weiß, was der Unterschied zwischen Objective C 2.0 Garbage Collector und dem neuen automatischen Referenzzähler in IOS 5 SDK ist?

ARC ist kein Garbage Collector. Es ist besser, sie als manuelle Referenzzählungsaufrufe (Retain / Release / Autorelease) zu betrachten, die vom Compiler hinzugefügt werden. Es verwendet auch einige Laufzeittricks.

Wenn Sie ObjC auf Apple-Systemen völlig neu sind: Alle Objective-C-Typen von Apple verwenden Referenzzählung, aber es gibt jetzt mehrere Varianten. Vor ARC und vor GC verwendeten wir nur manuelle Referenzzählung (MRC). Mit MRC würden Sie Ihre Objekte explizit beibehalten und freigeben. MRC war schwierig für einige Leute, besonders für diejenigen, die wenig Zeit damit verbracht hatten, ihr Gedächtnis explizit zu verwalten. Daher wuchs die Nachfrage nach einfacheren Systemen im Laufe der Zeit. MRC-Programme erfordern außerdem, dass Sie eine gute Menge an Speicherverwaltungscode schreiben, was mühsam werden kann.

Sehen Sie Brads ausgezeichnete Antwort hier für einige mehr Details.

  

verwendet IOS 5 SDK auch Objective C 2.0?

Ja, aber ist der ObjC Garbage Collector nicht und war niemals eine Option für iOS.

    
justin 26.10.2011, 08:14
quelle
8

Hinweis: Garbage Collection ist unter iOS nicht verfügbar, aber gemäß meinen Kommentaren ist ARC unter Mac OSX 10.6+ verfügbar. Die Unterschiede sind jedoch immer noch vergleichbar.

Mit automatische Referenzzählung werden Objekte immer noch freigegeben, sobald sie den Gültigkeitsbereich verlassen.

Mit garbage collection können Objekte im Speicher verbleiben, bis der Garbage Collector den nächsten Sweep ausführt und Objekte findet, die keine Referenzen mehr enthalten.

    
James Webster 26.10.2011 08:17
quelle