2012-04-02 13 views
6

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

त्रुटि [IRForTarget]: नहीं ऑब्जेक्टिव-सी अप्रत्यक्ष इवर प्रतीक OBJC_IVAR _ $ _ MyFancyClass.iVar

बजाय मुझे मूल्य दिखाने का ढूंढा जा सका। हालांकि, Variables View में, मैं इसे ठीक देख सकता हूं। जब तक मैं Print Description of ... का चयन नहीं कर रहा हूं, क्योंकि तब, एक्सकोड दुर्घटनाग्रस्त हो जाता है ... जब मैं जीडीबी का उपयोग करता हूं, होवरिंग काम करता है लेकिन चर के प्रकार और मान गलत हैं।

मुझे याद है कि मेरे कोड में कुछ गड़बड़ है जो बदले में डिबगर्स विफल हो जाती है। हालांकि, कोड ठीक चलाता है। मुझे कुछ नमूना कोड प्रदान करना अच्छा लगेगा लेकिन कक्षा काफी लंबी है और मैं अपने स्क्रूअप के सही स्थान को इंगित नहीं कर सकता। तो क्या किसी ने भी इसी तरह का व्यवहार किया है?

अद्यतन: असल में, ऐसा लगता है जैसे यह मेरे कोड में हर जगह होता है, न केवल कुछ विशिष्ट फ़ाइलों में। यदि यह मदद करता है, जबकि एलएलडीबी उपर्युक्त संदेश दिखाता है, तो जीडीबी हमेशा कक्षा के एक वस्तु को दिखाता है जो iVar के बजाय iVar का मालिक है। ऐसा लगता है कि स्मृति प्रबंधन में कुछ गड़बड़ है या नहीं। उदाहरण के लिए, अगर मैं कहूँ की तरह

[notificationCenter addObserver:self selector:@selector(foo) name:bar object:objA]; 

चयनकर्ता कुछ शुरू हो जाती है मैं

[notificationCenter postNotificationName:bar object:objB]; 
+0

आपका कोड लंबा हो सकता है, लेकिन ऐसा लगता है कि पर्याप्त लोगों को इसका सामना नहीं हुआ है। क्या आप बस कुछ कोड का सारांशित संस्करण दिखा सकते हैं जहां यह व्यवहार होता है? –

+0

ठीक है, क्योंकि यह मेरे कोड में बिल्कुल हर जगह होता है, मैं वास्तव में नहीं जानता कि मैं क्या पोस्ट कर सकता हूं ... – Phlibbo

+0

मैं बस अनुमान लगा रहा हूं इसलिए मैं कोई जवाब पोस्ट नहीं कर रहा हूं, लेकिन अगर आप डीबगर का उपयोग करने का प्रयास करते हैं तो क्या होता है कंसोल और ऑब्जेक्ट को "पीओ" का उपयोग करके प्रिंट करें? साथ ही, क्या आपके पास शायद किसी विशेष प्रकार की विशेष जीडीबी कॉन्फ़िगरेशन फीई है? क्या यह एक पुस्तकालय है जिसे आप डीबग करने का प्रयास कर रहे हैं? क्या आप डिबग जानकारी सक्षम कर रहे हैं? अपनी बिल्ड सेटिंग्स को दो बार जांचें (डीबग प्रतीकों, अनुकूलन स्तर, डीबग जानकारी प्रारूप उत्पन्न करें)। –

उत्तर

9

इस त्रुटि का कारण गलत बिल्ड सेटिंग्स हैं, जैसा कि प्रश्न पोस्ट टिप्पणियों में चर्चा द्वारा दर्शाया गया है। इसे डीबग-मोड (डिफ़ॉल्ट मान) के लिए "परिनियोजन पोस्टप्रोसेसिंग" को वापस सेट करके तय किया जा सकता है।

2

सुनिश्चित करें MyFancyClass.m अपने लक्ष्य को जोड़ा गया है, तब भी जब

+0

दुर्भाग्य से, यह पहले से ही है:/ – Phlibbo

0

आपका चयनकर्ता कि nsnotification भेजा जा रहा है एक (और केवल एक) तर्क की आवश्यकता है, जो एक एनएसएनोटिफिकेशन है। तो जब आप ऐसा करते हैं:

[notificationCenter addObserver:self selector:@selector(foo) name:bar object:objA]; 

-(void)foo 
{ 

} 

... यदि आप ऐसा करने की जरूरत है: [notificationCenter addObserver: स्वयं चयनकर्ता: @selector (foo :) नाम: बार वस्तु: objA];

-(void)foo:(NSNotification *)notification 
{ 

} 

अधिसूचना केंद्र के लिए चयनकर्ता में कॉलन पर ध्यान दें, और foo के लिए तर्क।

+0

सही। हालांकि, यह सिर्फ मुझे था, मेरे छद्म कोड में एक टाइपो है। याद रखें, वास्तविक समस्या अजीब डीबगर चेतावनियां हैं :) – Phlibbo

+0

(एनएसएनोटिफिकेशन) अधिसूचना (एनएसएनोटिफिकेशन *) अधिसूचना होना चाहिए – braden