objective c - मैं एक्सकोड 4 में NSZombieEnabled कैसे स्थापित करूं?




objective-c xcode (5)

एक्सकोड 7 पर

<

या Product > Scheme मेनू से Edit Scheme चयन Edit Scheme

Diagnostics टैब के रूप में Enable Zombie Objects चयन Enable Zombie Objects

वैकल्पिक रूप से, यदि आप .xcconfig फ़ाइलों को प्राथमिकता .xcconfig हैं तो आप इस आलेख को पढ़ सकते हैं https://therealbnut.wordpress.com/2012/01/01/setting-xcode-4-0-environment-variables-from-a-script/

CFZombieLevel 4 में मेरे निष्पादन योग्य के लिए मैं CFZombieLevel और CFZombieLevel कैसे स्थापित CFZombieLevel ?


एक्सकोड 4.2 में

  • परियोजना का नाम / योजना संपादित करें / निदान /
  • ज़ोंबी ऑब्जेक्ट्स चेक बॉक्स सक्षम करें
  • हो गया

एक्सकोड में> 4.3:

आप स्कीम ड्रॉप डाउन बार पर क्लिक करें -> योजना संपादित करें -> तर्क टैब और उसके बाद एनएसजेम्बी एनएनएबल को पर्यावरण चर वैरिएबल कॉलम और मूल्य कॉलम में YES जोड़ें।

शुभ लाभ !!!


कोको एक अच्छी सुविधा प्रदान करता है जो ऐसी स्थितियों को डीबग करने के लिए आपकी क्षमताओं को काफी बढ़ाता है। यह एक पर्यावरण चर है जिसे NSZombieEnabled कहा जाता है, इस video जो NSZombieEnabled को उद्देश्य-सी में स्थापित करने की व्याख्या करता है


मुझे यह विकल्प अधिक सुविधाजनक लगता है:

  1. "रन बटन ड्रॉपडाउन" पर क्लिक करें
  2. सूची से Profile चयन करें
  3. कार्यक्रम "इंस्ट्रूमेंट्स" खोलना चाहिए जहां आप Zombies भी चुन सकते हैं
  4. अब आप अपने ऐप से बातचीत कर सकते हैं और त्रुटि का कारण बन सकते हैं
  5. जैसे ही त्रुटि होती है आपको अपनी वस्तु जारी होने पर संकेत मिलता है और इसलिए अस्वीकार कर दिया जाता है।

जैसे ही एक ज़ोंबी का पता लगाया जाता है, तब आप एक साफ "ज़ोंबी स्टैक" प्राप्त करते हैं जो आपको दिखाता है कि जब वस्तु में प्रश्न आवंटित किया गया था और जहां इसे बनाए रखा गया था या जारी किया गया था:

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]

एक्सकोड योजनाओं के नैदानिक ​​टैब का उपयोग करने के मुकाबले लाभ :

  1. यदि आप डायग्नोस्टिक टैब में विकल्प को अनचेक करना भूल जाते हैं तो स्मृति से कोई ऑब्जेक्ट जारी नहीं किया जाएगा।

  2. आपको एक और विस्तृत स्टैक मिलता है जो आपको दिखाता है कि आपके भ्रष्ट ऑब्जेक्ट को आवंटित / जारी या बनाए रखा गया था।





nszombie