2011-12-07 13 views
8

एक्सकोड 4 मुझे बताता है कि जब कोई एनएसएएसएसर्ट विफल हो गया है, लेकिन जोरदार विवरण और बैकट्रैक अब लॉग नहीं हैं। मैं इस सवाल को देखा है:NSAssert को Xcode4 में विवरण कैसे लॉग इन करें?

How to make Xcode4 stop at NSAssert failure?

जो उपयोगी है, लेकिन मैं नहीं बल्कि जोर लॉग इन करें और जारी रहेगा। मैं एनएसएएसएसर्ट इस तरह से कैसे व्यवहार कर सकता हूं? धन्यवाद!

उत्तर

5

जो प्रश्न आपने लिंक किया है वह आपको सबसे अधिक पसंद करता है। आपके द्वारा दावे के लिए निर्धारित ब्रेकपॉइंट पर ब्रेकपॉइंट कार्रवाई जोड़ें। ब्रेकपॉइंट नेविगेटर से ब्रेकपॉइंट का चयन करें, राइट-क्लिक करें, और ब्रेकपॉइंट संपादित करें चुनें। संपादन ब्रेकपॉइंट का चयन एक पॉप-अप संपादक खोलता है। पॉप-अप संपादक में आपको टेक्स्ट के साथ एक एक्शन लाइन देखना चाहिए, जिसमें कोई क्रिया जोड़ने के लिए क्लिक करें। मेनू खोलने के लिए उस पाठ पर क्लिक करें। एक्शन मेनू से लॉग संदेश चुनें। संदेश लॉगिंग के बाद स्वचालित रूप से जारी रखने के लिए क्रियाओं का मूल्यांकन करने के बाद स्वचालित रूप से जारी रखें चुनें।

enter image description here

1

आप लॉग इन करें और आगे बढ़ने की जरूरत है, तो आप NSAssert उपयोग करने की आवश्यकता नहीं है।

आम तौर पर, गंभीर गलती का पता चला है, तो तुरंत आवेदन के निष्पादन को रोकने के लिए डेवलपर्स द्वारा डीबग बिल्ड में डेवलपर्स द्वारा उपयोग किए जाने का दावा किया जाता है। डिफ़ॉल्ट रूप से, एक्सकोड परियोजनाओं ने रिलीज में NS_BLOCK_ASSERTIONS सेट किए हैं ताकि एनएसएएसएसर्ट कॉल संकलित हो जाएं।

मामूली समस्याओं के लिए जो केवल कंसोल पर लॉग इन करने की आवश्यकता है, आपको केवल NSLog का उपयोग करना चाहिए। (डीबगर कंसोल वास्तव में 'stdout' को भेजा गया डेटा दिखाता है, जहां एनएसएलओजी अपने परिणाम भेजता है।)

यदि आपको लॉग इन करने के लिए बिल्ड करने और रिलीज़ करने के लिए डीबग संस्करणों की आवश्यकता है, तो बस दोनों का उपयोग करें। हां, इसका मतलब है कि आपके पास कोड में दो बार एक ही विवरण दिखाई दे सकता है, लेकिन यह ठीक है। यह किसी भी डेवलपर द्वारा आसानी से समझा जाएगा। (आप परिणाम स्ट्रिंग पहले बना सकते हैं, यदि आप चाहें तो एनएसएएसएसर्ट और एनएसएलओजी दोनों को फ़ीड करें।)

यदि आपको एनएसएएसएसर्ट कॉल के व्यवहार को ओवरराइड करना होगा, तो आपके पास 2 विकल्प हैं: 1- मैक्रो परिभाषा बदलें परिणाम बदलने के लिए एनएसएएसएसर्ट, एनएसएएसएसर्ट 1, एनएसएएसएसर्ट 2, आदि का। 2- अपने धागे पर अपने स्वयं के एनएसएएसएसरशन हैंडलर ऑब्जेक्ट की आपूर्ति करें और इसे अपवाद फेंकने से रोकें।

संबंधित मुद्दे