Antworten:
Umgebungsvariablen sind jetzt Teil des "Schemas".
So bearbeiten Sie das Schema und aktivieren Zombies:
Wählen Sie im Menü "Produkt" die Option "Schema bearbeiten".
Gehen Sie im linken Bereich zur Phase "Run Foo.app" und rechts zur Registerkarte "Arguments".
Fügen Sie NSZombieEnabled
den Abschnitt "Umgebungsvariablen" hinzu und setzen Sie den Wert YES
wie in Xcode 3 auf.
In Xcode 4.1 und höher gibt es auch ein Kontrollkästchen auf der Registerkarte "Diagnose" der Stufe "Ausführen", um "Zombie-Objekte aktivieren" zu aktivieren.
Mit Xcode 6.4:
Ich habe das gleiche Problem bei der Fehlerbehebung bei EXC_BAD_ACCESS festgestellt und konnte die Einstellung mit Xcode 4.2 (der neuesten Version, die mit iOS5 SDK geliefert wird) nur schwer finden. Apple bewegt Dinge weiter und die Einstellungen sind nicht mehr dort, wo sie früher waren.
Zum Glück habe ich es gefunden und es funktioniert für das Gerät, nicht nur für Simulator. Sie müssen das Menü Produkt im Xcode öffnen, Schema bearbeiten auswählen und dann die Registerkarte Diagnose auswählen. Dort haben Sie "Zombie-Objekte aktivieren". Sobald Sie ausgewählt und im Debugger ausgeführt haben, werden Sie auf das doppelt freigegebene Objekt verweisen! Genießen!
Zusamenfassend
Product->Edit Scheme->Diagnostics-> Click Enable Zombie Objects
Produkt> Profil startet Instrumente und dann sollte es eine "Trace-Vorlage" mit dem Namen "Zombies" geben. Diese Ablaufverfolgungsvorlage ist jedoch nur verfügbar, wenn das aktuelle Build-Ziel der Simulator ist. Sie ist nicht verfügbar, wenn Sie das Ziel auf Ihrem iOS-Gerät festgelegt haben.
Ebenfalls zu beachten ist, dass sich in der Instrumentenbibliothek kein aktuelles Zombies-Instrument befindet. Die Zombies-Trace-Vorlage besteht tatsächlich aus dem Allocations-Instrument mit dem Startkonfigurationssatz "NSZombie-Erkennung aktivieren".
Es ist eine einfache Sache, eine Umgebungsvariable in Ihrer ausführbaren Datei (NSZombieEnabled = YES)
festzulegen und dann Ihre App wie gewohnt auszuführen / zu debuggen. Wenn Sie einem Zombie eine Nachricht senden, stürzt Ihre App in Debugger und abNSLog
eine Nachricht für Sie.
Weitere Informationen finden Sie auf dieser CocoaDev-Seite: http://www.cocoadev.com/index.pl?NSZombieEnabled
Außerdem wird dieser Prozess mit der Veröffentlichung von 10.6 und den nächsten Versionen von Xcode und Instruments viel einfacher. Ich sage nur '. =)
Produkt> Profil öffnet Instrumente. Wähle Zombies aus dem Panel und werde verrückt.
Hier ist ein Video und eine Erklärung, wie Sie mit Instruments und NSZombie Speicherabstürze unter iOS finden und beheben können: http://www.markj.net/iphone-memory-debug-nszombie/
Ab Xcode 3.2.5 und Snow Leopard (Mac OS X 10.6) können Sie Ihren Code über das Zombies-Instrument ausführen : Run > Run with Performance Tool > Zombies
. Auf diese Weise können Sie bestimmte Objekte und deren Aufbewahrungszahlen auf einer Zeitachse anzeigen.
Um die Zombie-Protokollierung zu aktivieren, doppelklicken Sie auf die ausführbare Datei in der Gruppe der ausführbaren Dateien Ihres Xcode-Projekts. Klicken Sie an dieser Stelle auf die Registerkarte Argumente und erstellen Sie im Variables to be set in the environment:
Abschnitt eine Variable mit dem Namen NSZombieEnabled
und setzen Sie ihren Wert auf YES
.
Fügen Sie in den NSZombieEnabled
Einstellungen Ihrer ausführbaren Datei die Umgebungsvariable hinzu und setzen Sie den Wert auf YES
.
in ur XCODE (4.3) neben der Wiedergabetaste :) (run)
Wählen Sie: Schema bearbeiten
Das Schemaverwaltungsfenster wird geöffnet
Klicken Sie auf die Registerkarte Argumente
Sie sollten Folgendes sehen: 1- Argumente, die beim Start übergeben wurden 2- Umgebungsvariablen
innerhalb des Ortes (2 Umgebungsvariablen) Name: NSZombieEnabled
Wert: YES
Und es ist geschafft ...
NSZombieEnabled wird zum Debuggen von BAD_ACCESS verwendet.
Aktivieren Sie die Umgebungsvariable NSZombiesEnabled im Xcode-Schema-Blatt.
Click on Product⇒Edit Scheme to open the sheet and set the Enable Zombie Objects check box
Dieses Video wird Ihnen helfen zu sehen, was ich zu sagen versuche.