2009-12-04 11 views
5

मेरे पास एक आईफोन ऐप है। ऐसा लगता है कि ठीक चल रहा है। जब मैं एक्सकोड में एक प्रावधान किए गए आईफोन से कनेक्ट करता हूं और ऐप चलाता हूं, तो ऑर्गनाइज़र विंडो में कंसोल लॉग, होम कुंजी के साथ ऐप छोड़ते समय हमेशा सेगमेंटेशन गलती के बारे में शिकायत करता है।सिग्नल 11, आईफोन ऐप सेगमेंट पर सेगमेंटेशन गलती

क्या किसी और ने इसे देखा है, और क्या आपको पता है कि समस्या क्या हो सकती है? मैं बैकग्राउंड में वेब पेज लोड करने के लिए थ्रेड का उपयोग करता हूं, लेकिन बाहर निकलने पर मैं थ्रेड को रोकता हूं।

मेरा ऐप कुछ लगातार जानकारी सहेजता है। जब मैं बिल्ड का निर्माण और विश्लेषण का उपयोग करता हूं तो मुझे कुछ 2 संभावित मेमोरी लीक मिलते हैं, लेकिन प्रत्येक मामले में मैं ऑब्जेक्ट आवंटित कर रहा हूं और इसे सरणी में रख रहा हूं।

कोई विचार, या यह सामान्य है?

+1

NSZombieEnabled ने वास्तव में मुझे एक दुर्घटना खोजने में मदद की जो मुझे पहले नहीं मिला। – BastiBen

उत्तर

7

NSZombieEnabled के साथ अपना एप्लिकेशन चलाने का प्रयास करें। यह आपको बताएगा कि क्या आप किसी वस्तु को छोड़ रहे हैं। लाश करना सक्षम करने के लिए निम्नलिखित:

  1. Choose Project > Edit Active Executable to open the executable Info window.
  2. Click Arguments.
  3. Click the add (+) button in the “Variables to be set in the environment” section.
  4. Enter NSZombieEnabled in the Name column and YES in the Value column.
  5. Make sure that the checkmark forthe NSZombieEnabled entry is selected.
+0

NSZombieEnabled के साथ, समस्या को पकड़ने के लिए मुझे ब्रेकपॉइंट कहां सेट करना चाहिए? इस सेटिंग के साथ, मुझे प्रोग्राम संदेश के साथ जल्दी समाप्त हो जाता है: CFString autorelease: संदेश को आवंटित उदाहरण पर भेजा गया। जब संदेश किसी डेलोकेटेड स्ट्रिंग पर भेजा जाता है तो मैं तोड़ना चाहता हूं, इसलिए मैं कौन सी स्ट्रिंग को समझ सकता हूं। धन्यवाद, गेरी – Gerry

+0

लाश सक्षम के साथ। मेरा कोड नीचे दिए गए कोड से [पार्सर पार्स] लाइन के अंदर गलती करता है। यह बिट एनएसटीएचड पर होता है। कोई समस्या जो किसी समस्या का कारण बनती है। मेरा पाया गया अभियंता दिनचर्या हिट नहीं है। धन्यवाद, गेरी (अगली टिप्पणी में कोड) – Gerry

+0

NSURL * nsurl = [NSURL URLWithString: query]; \t NSURLRequest * अनुरोध = [NSURLRequest अनुरोध WithURL: nsurl]; \t \t डेटा = [NSURLConnection sendSynchronousRequest: अनुरोध वापसी वापसी प्रतिक्रिया: और प्रतिक्रिया त्रुटि: और त्रुटि]; \t \t NSXMLParser * पार्सर = [[NSXMLParser alloc] initWithData: डेटा]; \t [पार्सर सेट डिलीगेट: स्वयं]; \t [पार्सर सेटShouldProcessNamespaces: NO]; \t [पार्सर सेटशल्ड रिपोर्टपोर्टस्पेसफिक्सिक्स: नहीं]; \t [पार्सर सेटशॉल्डरोलॉल्व एक्स्ट्राइनेंटिटीज: नहीं]; \t errorStr = nil; \t अगर ([पार्सर पार्स] == हाँ) // सामान – Gerry

0

अपने आवेदन से बाहर निकलने पर ऑब्जेक्ट को रिलीज़ करने से पहले प्रत्येक ऑब्जेक्ट को डंप करने का प्रयास करें या डेलोक विधि में कुछ डिबगिंग करें।

0

शायद आप अपनी वस्तु को बरकरार रखने से अधिक बार कुछ ऑब्जेक्ट जारी कर रहे हैं। -release पर टिप्पणी करें जब तक आप अपराधी नहीं पाते हैं, तब तक dealloc विधियों (या अन्यत्र) में कॉल करें।

फिर उस कोड को अनदेखा करें और अपने कोड में कहीं और देखें जहां आप उस ऑब्जेक्ट को ओवर-रिलीज़ करने का प्रयास कर रहे हैं।

आप सुविधा तरीकों का उपयोग कर रहे हैं, तो उदाहरण के लिए, (उदाहरण के लिए [NSString stringWithFormat:@"..."]) के रूप में alloc-init पद्धति (उदा [[NSString alloc] initWithFormat:@"..."]) जिसके परिणामस्वरूप सुविधा वस्तु autoreleased है करने का विरोध किया और मैन्युअल रूप से जारी नहीं किया जाना चाहिए।

0

मेरे समस्या uididfaker और cydia से locationholic था, और उन्हें मेरे iphone ठीक पर xcode रन की स्थापना रद्द करने के बाद।

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