Jak skonfigurować NSZombieEnabled w Xcode 4?
Jak skonfigurować NSZombieEnabled
i CFZombieLevel
dla mojego pliku wykonywalnego w Xcode 4?
7 answers
W Xcode 4.X press
⌥⌘R
(lub kliknij Menubar
> Product
> Scheme
> Edit Scheme
)
Wybierz zakładkę "Diagnostyka" i kliknij "Włącz Obiekty Zombie":
To zamienia zwolnione obiekty w instancje NSZombie, które wypisują Ostrzeżenia konsoli po ponownym użyciu. Jest to pomoc debugowania, która zwiększa zużycie pamięci (żaden obiekt nie jest tak naprawdę zwolniony), ale poprawia raportowanie błędów.
Typowy przypadek polega na tym, że obiekt i nie wiesz który:
- Z Zombie:
-[UITableView release]: message sent to deallocated instance
- BEZ Zombie:
To ustawienie Xcode jest ignorowane podczas archiwizacji aplikacji do przesyłania w sklepie App Store. Nie musisz niczego dotykać przed zwolnieniem aplikacji.
Naciśnięcie ⌥ ⌘R jest takie samo jak wybranie opcji product > Run Przy wciśnięciu klawisza Alt.
Kliknięcie pola wyboru" Włącz Obiekty Zombie "jest takie samo jak ręczne dodawanie" NSZombieEnabled = YES "w sekcji" zmienne środowiskowe " tabulatorów.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-07 18:39:17
Odpowiedź Jano jest najprostszym sposobem, aby ją znaleźć.. innym sposobem byłoby kliknięcie na rozwijanym pasku scheme - > edytuj scheme - > arguments, a następnie dodanie NSZombieEnabled w kolumnie zmiennych środowiskowych i YES w kolumnie value...
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-16 14:22:13
Uważam tę alternatywę za wygodniejszą:
- Kliknij rozwijane menu "Uruchom przycisk"
- z listy wybierz
Profile
- program" Instrumenty " powinien się otworzyć, gdzie można również wybrać
Zombies
- Teraz możesz wchodzić w interakcje z aplikacją i próbować spowodować błąd
- Jak tylko wystąpi błąd, powinieneś otrzymać podpowiedź, kiedy twój obiekt został zwolniony, a tym samym dealokowany.
Jak tylko zombie zostanie wykryty, otrzymasz porządny "Stos Zombie", który pokazuje, kiedy dany obiekt został przydzielony i gdzie został zachowany lub zwolniony: {]}
Event Type RefCt Responsible Caller
Malloc 1 -[MyViewController loadData:]
Retain 2 -[MyDataManager initWithBaseURL:]
Release 1 -[MyDataManager initWithBaseURL:]
Release 0 -[MyViewController loadData:]
Zombie -1 -[MyService prepareURLReuqest]
Zalety w porównaniu do korzystania z karty diagnostycznej schematów Xcode :
Jeśli zapomnisz odznaczyć opcję na karcie Diagnostyka, żadne obiekty nie zostaną zwolnione z pamięci.
Otrzymasz bardziej szczegółowy stos, który pokazuje, w jakich metodach uszkodzony obiekt został przydzielony / zwolniony lub zachowany.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-04 00:56:27
In Xcode 4.2
- Nazwa Projektu / Edycja Schematu / Diagnostyka /
- Włącz pole wyboru obiektów Zombie
- You ' re done
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-23 03:04:13
On In Xcode 7
⌘
Lub wybierz Edit Scheme
z Product
> Scheme
Menu
Wybierz Enable Zombie Objects
z zakładki Diagnostics
Jako alternatywę, jeśli wolisz .xcconfig
Pliki możesz przeczytać ten artykuł https://therealbnut.wordpress.com/2012/01/01/setting-xcode-4-0-environment-variables-from-a-script/
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-20 06:50:01
Cocoa oferuje fajną funkcję, która znacznie zwiększa możliwości debugowania takich sytuacji. Jest to zmienna środowiskowa o nazwie NSZombieEnabled, obejrzyj ten film wyjaśniający konfigurację NSZombieEnabled w objective-C
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-22 04:41:08
In Xcode > 4.3:
Klikasz na rozwijanym pasku scheme -> edytuj scheme - > arguments, a następnie dodajesz NSZombieEnabled w kolumnie zmienne środowiskowe i YES w kolumnie value.
Powodzenia !!!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-16 20:02:32