2012-03-20 14 views
17

में कोड स्वत: पूर्णता/वाक्यविन्यास हाइलाइटिंग के साथ समस्या मेरे पास मेरी परियोजनाओं में से एक पर एक्सकोड में एक अजीब मुद्दा है।एक्सकोड 4.x

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

यह पहले कभी नहीं हुआ और इसलिए मैं उलझन में हूं कि यह अभी क्यों हुआ है, और केवल मेरी परियोजनाओं में से एक पर। मैंने इस साइट को किसी भी फिक्स के लिए कुछ समय के लिए खोजा है और मैंने व्युत्पन्न डेटा को साफ करने, एक्सकोड छोड़ने, एक्सकोड प्रोजेक्ट से कार्यक्षेत्र और उपयोगकर्ता फ़ाइलों को हटाने और पुनरारंभ करने का प्रयास किया है, लेकिन ऐसा करने के बाद, ऑटो-पूर्ण काम थोड़ी देर के लिए , फिर कोडिंग के लगभग 30 सेकंड के बाद फिर से टूट जाता है।

मैं कभी-कभी ऑटो-पूर्ण समाधान देख सकता हूं, लेकिन केवल सादा पाठ (कोई कक्षा संकेतक नहीं), फिर दूसरी बार यह पूरी तरह से काम करना बंद कर देता है।

क्या किसी और ने ऐसा कुछ अनुभव किया है और कुछ समाधान प्रदान कर सकता है?

उत्तर

42

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

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

एक बार जब आप उन सभी समस्याओं का समाधान कर लेंगे, तो पहली बात यह है कि हमें पता होना चाहिए कि आपकी परियोजना की पूरी अनुक्रमणिका करके इंडेक्सर असफल रहा है।

  • सबसे पहले, सुनिश्चित करें कि Xcode बंद कर दिया है, तो ऊपर इंडेक्सर चेतावनी संदेश स्तर टर्मिनल में प्रवेश करने से बारी:

    defaults write com.apple.dt.Xcode IDEIndexingClangInvocationLogLevel 3 
    
  • फिर अपनी परियोजना/कार्यक्षेत्र के लिए व्युत्पन्न डेटा फ़ोल्डर को खोजने (शायद ~/लाइब्रेरी/डेवलपर/एक्सकोड/व्युत्पन्न डेटा/आपका प्रोजेक्ट नाम-कुछ गिबर), और इसे हटाएं (लेकिन व्युत्पन्न डेटा फ़ोल्डर खोलें क्योंकि आपको शायद वापस जाना होगा और इसे कुछ बार करना होगा।

  • इसके बाद, कंसोल एप्लिकेशन खोलें और क्लिक स्पष्ट प्रदर्शन, और केवल करने के लिए फिल्टर करने के लिए "आईडीई" सेट संदेशों हम में रुचि रखते हैं दिखा।

  • अंत में, खुले Xcode और परियोजना/कार्यक्षेत्र है कि आपकी समस्याओं का कारण बनता है, और आप देखेंगे कि कंसोल संदेशों के साथ भरना शुरू कर देगा।

  • त्रुटियों को देखने के लिए, कंसोल फ़िल्टर को "त्रुटि:" में बदलें - हमारा उद्देश्य शून्य को कम करना है।

  • मुझे मिली अधिकांश त्रुटियों में हेडर फाइलें अनुपलब्ध थीं। एक्सकोड खुद इंडेक्सर से ज्यादा स्मार्ट लगता है। ऐसा लगता है कि इंडेक्सर अन्य परियोजनाओं से हेडर फाइलों को ढूंढ और शामिल करने में सक्षम है।

  • तो, कहीं भी आप देख "गंभीर त्रुटि: 'somefile.h' फ़ाइल नहीं मिला", सुनिश्चित करें कि आप लक्ष्य के निर्माण सेटिंग्स में उपयोगकर्ता हैडर खोजें पथ है कि फ़ाइल का रास्ता जोड़ने बनाते हैं। ऐसा करने का सबसे अच्छा तरीका यह है कि पॉपअप प्राप्त करने के लिए फ़ील्ड पर डबल क्लिक करना है, और फ़ोल्डर को फ़ोल्डर में खींचें। यह एक नई प्रविष्टि जोड़ता है, लेकिन यह मानता है कि यह एक ही कार्यक्षेत्र में है, यह एक सापेक्ष फ़ाइल पथ जोड़ता है (यदि आप भविष्य में अपना वर्कस्पेस फ़ोल्डर ले जाते हैं तो यह महत्वपूर्ण है)। यदि आपके पास एक ही प्रोजेक्ट के लिए कई लक्ष्य हैं, तो आप लक्ष्य स्तर के बजाय प्रोजेक्ट पर खोज पथ सेट कर सकते हैं और लक्ष्य खोज पथ $ (विरासत) पर सेट कर सकते हैं।

  • आपको पुस्तकालयों या फ्रेमवर्क के साथ समान समस्याएं हो सकती हैं - फिर, उपयुक्त खोज पथ अपडेट करें।

  • एक बार आपकी कुछ त्रुटियों को ठीक करने के बाद, एक्सकोड बंद करें, कंसोल साफ़ करें, प्रोजेक्ट के व्युत्पन्न डेटा को हटाएं, एक्सकोड खोलें और इसे फिर से इंडेक्स दें।

  • अपनी सभी त्रुटियों को तब तक दोहराएं जब तक कि आपकी सभी त्रुटियां पूरी नहीं हो जातीं।

बार जब आप इस अच्छा स्थान पर हैं, कोड स्वत: पूर्ण और वाक्य रचना हाइलाइटिंग एक आकर्षण :)

+0

चरण 1 और 2 मेरे लिए काफी अच्छे थे – Ondrej

+1

केवल चरण 2 किया और यह ठीक काम किया .. धन्यवाद –

+0

जो भी मेरा जवाब नीचे मतदान करता है, कृपया मुझे बताएं कि मैं इसे सुधारने के लिए क्या कर सकता हूं। धन्यवाद। –

0

आप द्वारा इस समस्या को दूर करने में सक्षम हो सकता है: (सामान्य रूप से जब आप इसे करते हैं, Xcode अब स्वतः पूर्ण ले जाएगा)

  • परियोजना की .pch फ़ाइल में सभी प्रविष्टियों बाहर टिप्पणी करते हुए परियोजना
  • सफाई

    1. Uncommening .pch फ़ाइल वापस
    2. पुनर्निर्माण परियोजना

    अब आप सही सिंटैक्स ज को देखने के लिए सक्षम होना चाहिए प्रकाश डालना और ऑटो पूर्णता सही होना चाहिए।

    +0

    मैंने कोशिश की। यह थोड़ी देर के लिए काम करता है, जब तक कि मैं हेडर फ़ाइलों में से किसी एक को संपादित करने का प्रयास नहीं करता, तब स्वत: पूर्ण और वाक्यविन्यास हाइलाइटिंग गायब हो जाती है, जिससे मुझे फिर से परियोजना को साफ करने के लिए छोड़ दिया जाता है। मैंने पीसीएच फ़ाइल को वापस अपने मूल स्थिति में वापस करने का प्रयास किया है लेकिन इसका कोई फायदा नहीं हुआ है। मुझे लगता है कि प्रगति का एकमात्र तरीका या तो परियोजना को क्लोन करना होगा या ताजा से शुरू करना होगा। –

    5

    फिर भी Xcode 4.3.2 पर कभी कभी मेरे लिए होता है की तरह काम करना चाहिए,

    मैं बस करना यह:

    Xcode > Organiser > Projects > Select your project > Derived Data > Click the delete button

    यह इंडेक्सिंग को भी हटा देता है। मैं फिर आमतौर पर एक्सकोड को पुनरारंभ करता हूं और यह फिर से अनुक्रमण शुरू करता है, और मुझे फिर से अपना वाक्यविन्यास हाइलाइटिंग और स्वत: पूर्णता मिलती है। (मैं हमेशा एक्सकोड को पुनरारंभ नहीं करता - लेकिन घंटों तक स्क्रीन पर शुरू होने से ब्रेक लेने का बहाना हमेशा आपके ग्लेज़बॉल के लिए एक अच्छी बात है!)

    ऐसा होता है कि शायद ही कभी, यह अपेक्षाकृत दर्द रहित है।

    4

    अधिकांश समय मैं इस समस्या में भाग लेता हूं जो डेरिवेटाटा को हटा देता है, यह मेरे लिए ठीक करता है, लेकिन यह एक ऐसा मामला नहीं है। बदलता है मैं किसी भी विशेष लक्ष्य में बनाई गई स्रोत फ़ाइल को जोड़ने में विफल रहा। एक बार जब मैं इसे लक्षित स्रोत स्रोत पर हाइलाइट करना शुरू कर देता हूं। यदि अन्य समाधान काम नहीं करते हैं, तो यह आपका मुद्दा हो सकता है।

    +0

    धन्यवाद !! यह पूरी तरह से काम कर रहा है! – firewall

    +0

    यह खुशी हुई जब मैंने cmd + n – Tim

    +0

    के माध्यम से एक नया निर्माण करने के बजाय मौजूदा वर्ग को डुप्लिकेट किया संबंधित: लक्ष्य को सक्रिय योजना में भी होना आवश्यक है, या पूर्णता/हाइलाइटिंग सही तरीके से काम नहीं करेगी। – celticminstrel

    3

    Search for 'GCC_INCREASE_PRECOMPILED_HEADER_SHARING' in build settings and change it to YES. - This worked for me.

    GCC_INCREASE_PRECOMPILED_HEADER_SHARING

    +0

    यह मेरे लिए काम जारी है, टैंक –

    2

    इसकी वास्तव में शर्मनाक। गलती से मैंने एक्सकोड प्रीफेर्न्स> टेक्स्ट एडिटिंग> कोड कम्प्लेशन में चेक मार्क बंद कर दिया और मैंने इसके हर संभव समाधान की कोशिश की। enter image description here

    कृपया किसी भी अन्य समाधान में खोदने से पहले इसे भी जांचें।

    +0

    भले ही यह अक्षम हो, आप नियंत्रण + स्पेस दबाकर पूरा कर सकते हैं। – celticminstrel

    0

    परियोजना है कि विफल हो रहा है की केवल व्युत्पन्न डेटा को हटाने के लिए पर्याप्त नहीं है

    मैं सभी परियोजनाओं के सभी व्युत्पन्न डाटा नष्ट करने के लिए किया था, एक स्वच्छ परियोजना किया था और XCode

    कमाल

    0

    पुनः आरंभ क्या वह नरक था? मुझे कंपाइलर से File not found त्रुटि प्राप्त नहीं हुई थी। Project's Build Phases पर से UnitTest और UITestTarget से कुछ लापता फ़ाइल लिंक को हटाकर एक फिक्स्ड फ़ाइल लिंक हटा रहा है।

    enter image description here