2011-06-13 8 views
7

मेरा ऐप सिम्युलेटर और डिवाइस पर ठीक से चल रहा था और चल रहा था, लेकिन मैंने देखा कि किसी कारण से, मेरे पास मेरी मुख्य निर्देशिका में डुप्लिकेट निर्देशिका थी, और कुछ डुप्लिकेट फ़ाइलें भी । इसलिए जब मेरी मुख्य निर्देशिका/MyAppName थी, तो/MyAppName/MyAppName में भी फ़ाइलें थीं।डुप्लिकेट उपनिर्देशिका को हटाने के बाद ऐसी कोई फ़ाइल या निर्देशिका

मैंने उपनिर्देशिका से किसी भी गैर-डुप्लिकेट फ़ाइलों को ध्यान से स्थानांतरित कर दिया, निर्देशिका हटा दी, और मेरे उपसर्ग शीर्षलेख और Info.plist फ़ाइलों के लिए पथ अपडेट किए। मैंने प्रोजेक्ट को साफ़ और बनाया है, हालांकि मुझे अभी भी डुप्लिकेट उपनिर्देशिका (जिसे हटाया गया है) में देख रहे कंपाइलर से एक त्रुटि मिल रही है, जैसे:

आर्म-सेब-डार्विन 10-llvm-gcc-4.2:/MyAppName /MyAppName/main.m: ऐसी कोई फ़ाइल या निर्देशिका

क्योंकि main.m /MyAppName/main.m

में है

मैं एक चर नहीं देख पा रहे या उपसर्ग हैडर के अलावा अन्य के लिए देखने के लिए की स्थापना करते हैं और Info.plist फाइलें। क्या कहीं और मुझे देखना चाहिए? स्पष्ट रूप से कुछ अभी भी डुप्लिकेट उपनिर्देशिका का संदर्भ दे रहा है, लेकिन मुझे नहीं पता कि कहां है।

उत्तर

4

प्रोजेक्ट लेआउट के आपके विवरण से ऐसा लगता है कि यह एक एक्सकोड 4 प्रोजेक्ट है। एक्सकोड की प्रोजेक्ट कॉन्फ़िगरेशन अभी भी सोचता है कि main.m /MyAppName/MyAppName में है, इसलिए आपको इस फ़ाइल और किसी अन्य के लिए प्रोजेक्ट कॉन्फ़िगरेशन को अपडेट करने की आवश्यकता है।

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

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

+0

यह चाल है! बहुत बहुत धन्यवाद। –

+0

फाइलों को पुन: समूह करने के बाद, पथ को रीसेट करना मेरे लिए काम नहीं करता था।जब मैंने परियोजना से फ़ाइल को हटाने और इसे वापस जोड़ने के लिए एडम के सुझाव का पालन किया - जो काम करता था - मैंने देखा कि फ़ाइल के स्थान पॉपअप ने अब "समूह से संबंधित" के बजाय "परियोजना से संबंधित" कहा है। बस इसे बदलना अन्य समस्या फ़ाइलों के लिए चाल थी। – Wienke

+0

बहुत बहुत धन्यवाद .. मेरा समय बचाया। – coder284

0

सुनिश्चित नहीं है कि आप किस एक्सकोड का उपयोग कर रहे हैं, लेकिन यदि आप 3.x पर हैं, तो क्या आप यह सुनिश्चित करने के लिए "खाली कैश" (एक्सकोड मेनू) का उपयोग करते हैं ताकि इमारत से पहले किसी इंटरमीडिएट फाइल को हटा दिया जा सके? कभी-कभी लक्ष्य की सफाई करना चाल नहीं करता है।

इसके अलावा, आप परियोजना से अपमानजनक फ़ाइलों को हटाने और सही पथ से उन्हें फिर से जोड़ने का प्रयास कर सकते हैं।

2

मेरी परियोजना में फ़ाइलों को स्थानांतरित करते समय मुझे यह समस्या थी। प्रोजेक्ट की बिल्ड सेटिंग्स पर जाएं और main.m पर खोजें। फिर उस सेटिंग को ठीक करें।

2

मुझे एक ही समस्या थी (फ़ाइलों को स्थानांतरित करने के बाद); और यह निर्धारित नहीं कर सका कि सेटिंग कहां थी कि main.m पुराने फ़ोल्डर में था। प्रोजेक्ट पेड़ में main.m सही ढंग से दिखाई दिया, परियोजना में शामिल, सही ढंग से संदर्भित किया गया था, आदि; लेकिन निर्माण पुराने स्थान का उपयोग करने पर जोरदार था।

मैं परियोजना से main.m को हटाकर और इसे फिर से जोड़कर इस मुद्दे को हल करने में सक्षम था। मैं एक पूर्ण स्वच्छ (cmd-opt-shift-k) करने और निर्माण करने की भी सिफारिश करता हूं।

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