2011-12-19 6 views
8

मैं एक मॉडल दृश्य नियंत्रक को खारिज करने की कोशिश कर रहा हूँ और निम्न त्रुटि हो रही है:आईओएस कैसे स्टैक ट्रेस के बिना दुर्घटनाओं को डीबग करना है: [__NSArrayM objectAtIndex:]: इंडेक्स 0 रिक्त सरणी के लिए सीमाओं से परे?

* न आया हुआ अपवाद 'NSRangeException', कारण की वजह से एप्लिकेशन समाप्त: '* - [__ NSArrayM objectAtIndex:]: सूचकांक 0 से परे खाली सरणी के लिए सीमाएं

एक बिंदु पर मैंने 4 घंटे इस तरह की त्रुटि को डीबग करने का प्रयास किया। क्या कोई मुझे बता सकता है कि ऐसी त्रुटियों के लिए स्टैक निशान देखने का कोई तरीका है, यह समझने के लिए कि किस वस्तु ने गलत पहुंच का कारण बनाया है?

धन्यवाद!

उत्तर

13

एक्सकोड 4 में आप ब्रेकपॉइंट संपादक में अपवाद ब्रेकपॉइंट सेट कर सकते हैं। हर बार एक अपवाद फेंक दिया जाता है (या आप इसे कैसे सेट अप करते हैं इसके आधार पर पकड़ा जाता है), आपका एप्लिकेशन अपवाद को फेंकने वाली रेखा पर रोक देगा।

+0

मेरी इच्छा है कि मैं दो उत्तरों को जोड़ सकूं। मुझे नहीं पता था कि मैं अपवादों को तोड़ सकता हूं। –

+1

आप कभी ऐसा क्यों नहीं करेंगे? – rdougan

+0

आईओएस 7 के साथ यह ब्रेकपॉइंट बाधा आधारित अपवादों पर भी ट्रिगर करता है, जो इस समय किसी और चीज पर काम करने की कोशिश कर रहे हैं, जो बहुत परेशान हो सकता है। –

22

यदि आप डीबगर में चल रहे हैं, तो बिल्कुल आपको उस वास्तविक रेखा को देखने में सक्षम होना चाहिए जिस पर अपवाद फेंक दिया जा रहा है।

बाएं फलक के शीर्ष पर ब्रेकपॉइंट टैब पर क्लिक करके अपवाद ब्रेकपॉइंट जोड़ें, फिर निचले बाएं तरफ प्लस साइन पर क्लिक करें। एक अपवाद ब्रेकपॉइंट जोड़ें।

enter image description here

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