كيف أقوم بإعداد nszombieenabled في xcode 4؟
-
25-09-2019 - |
سؤال
كيف أقوم بإعداد NSZombieEnabled
و CFZombieLevel
لبلدي القابل للتنفيذ في Xcode 4؟
المحلول
في Xcode 4.x اضغط
⌥⌘ص
(أو انقر Menubar
> Product
> Scheme
> Edit Scheme
)
حدد علامة التبويب "التشخيص" وانقر فوق "تمكين كائنات الزومبي":
هذا يحول الكائنات التي تم إصدارها إلى مثيلات nszombie التي تطبع تحذيرات وحدة التحكم عند استخدامها مرة أخرى. هذه مساعدة تصحيح الأخطاء تزيد من استخدام الذاكرة (لا يتم إصدار أي كائن بالفعل) ولكنه يحسن الإبلاغ عن الخطأ.
الحالة النموذجية هي عندما تفرط في إصدار كائن ولا تعرف أي منها:
- مع الزومبي:
-[UITableView release]: message sent to deallocated instance
- بدون زومبي:
يتم تجاهل إعداد Xcode هذا عند أرشفة تطبيق App Store Sridmission. لا تحتاج إلى لمس أي شيء قبل إصدار طلبك.
الضغط ⌥⌘ص هو نفسه اختيار المنتج> تشغيل مع الحفاظ على البديل مفتاح مضغوط.
إن النقر فوق مربع الاختيار "تمكين كائنات Zombie" هو نفسه إضافة "nszombieenabled = yes" يدويًا في "متغيرات البيئة" في وسيطات علامة التبويب.
نصائح أخرى
إجابة Jano هي أسهل طريقة للعثور عليها .. طريقة أخرى ستكون إذا قمت بالنقر فوق شريط Scheme Drop -Drop -> تحرير Scheme -> وسيطات الطرز ثم إضافة nszombieenabled في عمود متغيرات البيئة ونعم في عمود القيمة ...
أجد هذا البديل أكثر ملاءمة:
- انقر فوق "زر التشغيل المنسدلة"
- من القائمة اختر
Profile
- يجب أن يفتح البرنامج "الأدوات" حيث يمكنك أيضًا الاختيار
Zombies
- يمكنك الآن التفاعل مع تطبيقك ومحاولة التسبب في الخطأ
- بمجرد حدوث الخطأ ، يجب أن تحصل على تلميح عند إصدار كائنك وبالتالي تعامله.
بمجرد اكتشاف الزومبي ، تحصل على "مكدس Zombie" أنيق يوضح لك عندما تم تخصيص الكائن المعني وأين تم الاحتفاظ به أو إطلاقه:
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]
المزايا مقارنة باستخدام علامة التبويب التشخيص لمخططات Xcode:
إذا نسيت إلغاء تحديد الخيار في علامة التبويب التشخيص ، فلن يتم إصدار كائنات من الذاكرة.
يمكنك الحصول على مكدس أكثر تفصيلاً يوضح لك الطرق التي تم تخصيصها / إطلاقها أو الاحتفاظ بها.
في Xcode 4.2
- اسم المشروع/تحرير المخطط/التشخيص/
- تمكين خانة الاختيار تمكين كائنات الزومبي
- انت انتهيت
على XCODE 7
⌘<
أو حدد Edit Scheme
من عند Product
> Scheme
قائمة
تحديد Enable Zombie Objects
تشكيل Diagnostics
التبويب
كبديل ، إذا كنت تفضل .xcconfig
الملفات يمكنك قراءة هذه المقالة https://therealbnut.wordpress.com/2012/01/01/setting-xcode-4-0-environment-variables-from-a-script/
يوفر Cocoa ميزة رائعة تعزز قدراتك بشكل كبير لتصحيح مثل هذه الحالات. إنه متغير بيئة يسمى nszombieenabled ، شاهد هذا فيديو وهذا ما يفسر إعداد nszombieenabled في Objective-C
في Xcode> 4.3:
يمكنك النقر فوق شريط Scheme Drop Drop -> تحرير علامة التبويب -> وسيطات الطرز ثم إضافة nszombieenabled في عمود متغيرات البيئة ونعم في عمود القيمة.
حظا طيبا وفقك الله !!!