Wie richte ich meine ausführbare Datei in Xcode 4 ein NSZombieEnabled
und CFZombieLevel
für sie?
objective-c
xcode
xcode4
nszombie
Chetan
quelle
quelle
Antworten:
Drücken Sie in Xcode 4.x.
⌥⌘R
(oder klicken Sie auf
Menubar
>Product
>Scheme
>Edit Scheme
)Wählen Sie die Registerkarte "Diagnose" und klicken Sie auf "Zombie-Objekte aktivieren":
Dadurch werden freigegebene Objekte in NSZombie-Instanzen umgewandelt, die bei erneuter Verwendung Konsolenwarnungen drucken. Dies ist eine Debugging-Hilfe, die die Speichernutzung erhöht (kein Objekt wird wirklich freigegeben), aber die Fehlerberichterstattung verbessert.
Ein typischer Fall ist, wenn Sie ein Objekt übermäßig freigeben und nicht wissen, welches:
-[UITableView release]: message sent to deallocated instance
Diese Xcode-Einstellung wird ignoriert, wenn Sie die Anwendung für die App Store-Übermittlung archivieren. Sie müssen nichts berühren, bevor Sie Ihre Anwendung freigeben.
Das Drücken entspricht ⌥⌘Rdem Auswählen von Produkt> Ausführen, während die AltTaste gedrückt gehalten wird.
Das Klicken auf das Kontrollkästchen "Zombie-Objekte aktivieren" entspricht dem manuellen Hinzufügen von "NSZombieEnabled = YES" im Abschnitt "Umgebungsvariablen" der Registerkarte "Argumente".
quelle
CMD-<
(CMD-SHIFT-comma
) oderProduct -> Scheme -> Edit SCheme...
Janos Antwort ist der einfachste Weg, sie zu finden. Ein anderer Weg wäre, wenn Sie auf die Dropdown-Leiste Schema -> Schema bearbeiten -> Argumente klicken und dann NSZombieEnabled in der Spalte Umgebungsvariablen und JA in der Wertespalte hinzufügen ...
quelle
Ich finde diese Alternative bequemer:
Profile
Zombies
Sobald ein Zombie erkannt wird, erhalten Sie einen ordentlichen "Zombie-Stapel", der Ihnen anzeigt, wann das betreffende Objekt zugewiesen wurde und wo es aufbewahrt oder freigegeben wurde:
Vorteile gegenüber der Registerkarte "Diagnose" der Xcode-Schemata :
Wenn Sie vergessen, die Option auf der Registerkarte Diagnose zu deaktivieren, werden keine Objekte aus dem Speicher freigegeben.
Sie erhalten einen detaillierteren Stapel, der Ihnen zeigt, auf welche Weise Ihr beschädigtes Objekt zugewiesen / freigegeben oder beibehalten wurde.
quelle
iOS Simulator > All
aus der Hauptvorlagenliste auswählen (Sie können dies nur im Simulator tun)In Xcode 4.2
quelle
Ein In Xcode 7
⌘<
oder wählen Sie
Edit Scheme
ausProduct
>Scheme
MenüWählen Sie
Enable Zombie Objects
aus derDiagnostics
RegisterkarteWenn Sie
.xcconfig
Dateien bevorzugen, können Sie alternativ diesen Artikel lesen: https://therealbnut.wordpress.com/2012/01/01/setting-xcode-4-0-environment-variables-from-a-script/quelle
Cocoa bietet eine coole Funktion, die Ihre Möglichkeiten zum Debuggen solcher Situationen erheblich verbessert. Es handelt sich um eine Umgebungsvariable mit dem Namen NSZombieEnabled. In diesem Video wird das Einrichten von NSZombieEnabled in Ziel-C erläutert
quelle
In Xcode> 4.3:
Sie klicken auf die Dropdown-Leiste Schema -> Schema bearbeiten -> Registerkarte Argumente und fügen dann NSZombieEnabled in der Spalte Umgebungsvariablen und JA in der Wertespalte hinzu.
Viel Glück !!!
quelle