Bagaimana cara saya mengatur NSZombieEnabled
dan CFZombieLevel
untuk executable saya di Xcode 4?
objective-c
xcode
xcode4
nszombie
Chetan
sumber
sumber
Jawaban:
Dalam Xcode 4.x tekan
⌥⌘R
(atau klik
Menubar
>Product
>Scheme
>Edit Scheme
)pilih tab "Diagnostics" dan klik "Enable Zombie Objects":
Ini mengubah objek yang dilepaskan menjadi instance NSZombie yang mencetak peringatan konsol saat digunakan lagi. Ini adalah alat debugging yang meningkatkan penggunaan memori (tidak ada objek yang benar-benar dirilis) tetapi meningkatkan pelaporan kesalahan.
Kasus khas adalah ketika Anda melepaskan objek secara berlebihan dan Anda tidak tahu yang mana:
-[UITableView release]: message sent to deallocated instance
Pengaturan Xcode ini diabaikan ketika Anda mengarsipkan aplikasi untuk pengiriman App Store. Anda tidak perlu menyentuh apa pun sebelum merilis aplikasi Anda.
Menekan ⌥⌘Rsama dengan memilih Produk> Jalankan sambil terus Altmenekan tombol.
Mengklik kotak centang "Aktifkan Objek Zombie" sama dengan menambahkan secara manual "NSZombieEnabled = YA" di bagian "Variabel Lingkungan" pada tab Argumen.
sumber
CMD-<
(CMD-SHIFT-comma
), atauProduct -> Scheme -> Edit SCheme...
Jawaban Jano adalah cara termudah untuk menemukannya .. cara lain adalah jika Anda mengklik bilah tarik turun skema -> edit skema -> tab argumen lalu tambahkan NSZombieEnabled di kolom Variabel Lingkungan dan YA di kolom nilai ...
sumber
Saya menemukan alternatif ini lebih nyaman:
Profile
Zombies
Segera setelah zombie terdeteksi, Anda kemudian mendapatkan "Zombie Stack" yang rapi yang menunjukkan kepada Anda ketika objek tersebut dialokasikan dan di mana objek itu disimpan atau dilepaskan:
Keuntungan dibandingkan dengan menggunakan tab diagnostik Skema Xcode :
Jika Anda lupa untuk menghapus centang pada opsi pada tab diagnostik tidak ada objek yang akan dilepaskan dari memori.
Anda mendapatkan tumpukan yang lebih rinci yang menunjukkan kepada Anda dalam metode apa objek korup Anda dialokasikan / dirilis atau dipertahankan.
sumber
iOS Simulator > All
dari daftar templat utama (Anda hanya dapat melakukan ini di simulator)Dalam Xcode 4.2
sumber
Aktif dalam Xcode 7
⌘<
atau pilih
Edit Scheme
dariProduct
>Scheme
Menupilih
Enable Zombie Objects
bentukDiagnostics
tabSebagai alternatif, jika Anda lebih suka
.xcconfig
file, Anda dapat membaca artikel ini https://therealbnut.wordpress.com/2012/01/01/setting-xcode-4-0-environment-variables-from-a-script/sumber
Cocoa menawarkan fitur keren yang sangat meningkatkan kemampuan Anda untuk men-debug situasi seperti itu. Ini adalah variabel lingkungan yang disebut NSZombieEnabled, tonton video ini yang menjelaskan pengaturan NSZombieEnabled di objektif-C
sumber
Dalam Xcode> 4.3:
Anda klik pada drop down bar skema -> edit skema -> tab argumen dan kemudian tambahkan NSZombieEnabled di kolom Variabel Lingkungan dan YA di kolom nilai.
Semoga berhasil !!!
sumber