2012-12-20 21 views
7

Nach meinem Wissen, dass wir -fno-objc-arc Flag verwenden, um ARC für Dateien zu deaktivieren, die ARC in einem ARC-Projekt nicht unterstützen.Wie ARC-Projekt in Non-ARC konvertieren?

Und auch wir können -fobjc-arc Flag zu aktivieren ARC für Dateien unterstützen ARC in einem Nicht-ARC-Projekt.

Aber wenn ich mein ARC-Projekt (nicht bestimmte Datei) in ein Nicht-ARC-Projekt konvertieren möchte, wie soll ich dann weitermachen?

Bitte teilen Sie mir bitte über das gleiche.

Vielen Dank im Voraus.

Antwort

4

Sie müssen manuelle Speicherverwaltungsmethodenaufrufe an den entsprechenden Stellen einfügen. Im Allgemeinen ist jeder new, alloc, retain, copy und mutableCopy Anruf wird von einem release oder ein autorelease ausgeglichen werden (letztere ist vor allem im Fall von Rückgabewerten verwendet werden), so zum Beispiel des folgenden ARC-fähigen Code:

MyClass *myObj = [[MyClass alloc] init]; 
[myObj doStuff]; 

OtherClass *otherObj = [[OtherClass alloc] init]; 
return otherObj; 

sollte wie folgt unter MRC sein:

MyClass *myObj = [[MyClass alloc] init]; 
[myObj doStuff]; 
[myObj release]; 

OtherClass *otherObj = [[OtherClass alloc] init]; 
return [otherObj autorelease]; 

Mehr über Speicherverwaltung in der official documentation.

+0

Irgendein Grund für den Downvote? –

+0

Ich habe Sie nicht abgemeldet, aber ich denke, sie fragen nach dem Ändern der Projekteinstellungen von ARC aktiviert zu ARC deaktiviert, nicht zum Konvertieren einer bestimmten Datei. –

+0

@JackHumphries Danke, ich sehe - aber das nimmt in der Tat eine bestimmte IDE (Xcode) in diesem Fall, und das ist nicht in der Frage erwähnt. –

18

müssen Sie diesen Schritt

  1. gehen Sie zu Ihrem Projektziele folgen - Suche - Objective-C Automatische Referenzzähler

  2. Set NO von JA

Genießen Progaramming !

+0

Dies setzt die Verwendung von Xcode. –

+0

yes & es ist der kürzeste Weg, um ARC in NON-ARC zu konvertieren, da der Fragesender dasselbe verlangt: "Wenn ich mein ARC-Projekt (nicht bestimmte Datei) in ein Nicht-ARC-Projekt konvertieren will, wie soll ich dann weitermachen? das Gleiche?" –

1

enter image description here

sehr einfache Art und Weise bearbeiten -> verdeckte -> zu Objective-C ARC