2010-08-28 4 views
30

मैं अपने सिर को एक्सकोड के फ़ाइल संगठन के चारों ओर लपेटने की कोशिश कर रहा हूं - या वहां की कमी है। मैं प्रोजेक्ट में जो भी चाहता हूं वह कर सकता हूं और यह सभी "नकली" फ़ोल्डर्स और संरचना के साथ अच्छा लगता है। मैं फ़ाइल सिस्टम को देखता हूं और विशाल गड़बड़ बूम करता हूं। मैंने Create Folder Reference for any added folder विकल्प के साथ फ़ाइलों को आयात करने का प्रयास किया है और यह काम करता है, थोड़े। मुझे वह संरचना मिलती है जो मैं एक्सकोड और फाइल सिस्टम दोनों में चाहता हूं।मुझे अपनी एक्सकोड परियोजना फ़ाइलों को कैसे व्यवस्थित करना चाहिए?

मुद्दे: जब मैं फाइल सिस्टम Xcode में एक फ़ोल्डर संदर्भ है कि पर एक फ़ोल्डर में एक फ़ाइल जोड़ने, अपने Xcode में नहीं है जब मैं देखो जाना है, परियोजना को फिर से लोड करने के बाद भी नहीं। फ़ोल्डर्स संदर्भ में फ़ाइलें/उपफोल्डर्स को एक्सकोड में चारों ओर स्थानांतरित नहीं किया जा सकता है। जब मैं उन्हें फाइल सिस्टम पर ले जाता हूं तो मुझे एक्सकोड में लाल लिंक मिलते हैं (फाइल नहीं मिल सकती?)।

मैं एक संगठित प्रोजेक्ट और फाइल सिस्टम कैसे रखूं? मैं सिर्फ एक फ़ोल्डर को पहचानने के लिए एक प्रोजेक्ट कैसे स्थापित कर सकता हूं और अपनी प्रोजेक्ट में अपनी (वर्तमान और अद्यतित) फ़ाइलों और उपफोल्डर्स को दिखा सकता हूं?

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

क्या मुझे बिल्कुल परवाह करना चाहिए? क्या मुझे सिर्फ नकली फ़ोल्डर्स का उपयोग करना चाहिए और सबकुछ हर जगह जाना चाहिए और परवाह नहीं है? मेरा आवेदन बंडल एक गड़बड़ होगा, फाइल सिस्टम एक गड़बड़ होगी, लेकिन यह सब काम करेगा ... मुझे उम्मीद है?

संपादित करें:

एक संगठित फाइल सिस्टम चाहने के लिए मेरा सबसे बड़ा कारण है कि संसाधन फ़ाइलों (चित्र, लगता है, अन्य डाटाफाइलों, आदि) Xcode में संपादित नहीं कर रहे हैं। मुझे फाइल सिस्टम के माध्यम से तीसरे पक्ष के ऐप्स में उन्हें एक्सेस करना होगा। यदि यह किसी तीसरे पक्ष के अनुप्रयोगों में एक गड़बड़ चीजों को खोजने और बनाए रखने के लिए कठिन है।

इसके अलावा क्या होता है अगर मैं निम्नलिखित की तरह एक संरचना चाहते हैं:/

  • छवियाँ/पृष्ठभूमि Name.png
  • छवियाँ/प्रतीक/Name.png
  • छवियाँ/टाइटल/Name.png

क्या मुझे व्यवस्थित करने के लिए फ़ोल्डर के बजाय लंबे फ़ाइल नामों का उपयोग करना चाहिए?

  • Images_Backgrounds_Name.png
  • Images_Icons_Name.png
  • Images_Titles_Name.png
+0

एक कारण यह है कि फ़ाइल सिस्टम संगठन महत्वपूर्ण है कि स्रोत कोड संस्करण नियंत्रण प्रणाली फ़ाइल सिस्टम को सिंक करता है। – Anand

+0

@ अंदंद - सच है कि एक्सकोड में गिट का निर्माण हुआ है, इसलिए इसका सार भी दूर है। – Justin808

उत्तर

6

मैं सब पर ध्यान देना चाहिए? क्या मुझे सिर्फ नकली फ़ोल्डर्स का उपयोग करना चाहिए और सब कुछ हर जगह जाना चाहिए और परवाह नहीं है? मेरा एप्लिकेशन बंडल गड़बड़ होगा, फाइल सिस्टम एक गड़बड़ होगी, लेकिन यह सब काम करेगा ... मैं आशा करता हूं?

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

मुझे वास्तव में समझ में नहीं आता कि आप सभी फाइलों और फ़ोल्डर्स को इस तरह से क्यों व्यवस्थित करना चाहते हैं? यह एप्लिकेशन के चलने में कोई फर्क नहीं पड़ता है और एक्सकोड में "नकली" फ़ोल्डर (समूह) पर्याप्त रूप से आपके वर्गों और अन्य संसाधनों के माध्यम से नेविगेट करने के लिए आवश्यक (और अन्य) के लिए आवश्यक दृश्य सहायता प्रदान करते हैं। इसे अपने फाइल सिस्टम में सही ढंग से व्यवस्थित करना (जैसा कि आपने पाया है) निश्चित रूप से चीजों को और अधिक कठिन बनाता है?

+2

मेरे तर्क के लिए मेरे उपरोक्त संपादन देखें। दुर्भाग्यवश, मैं देख रहा हूं कि क्या मैं एक्सकोड का उपयोग करना चाहता हूं तो मुझे बस इसे एफ कहना होगा और FUBARED फाइल सिस्टम संगठन से निपटना होगा। अगर मैं मैक के लिए देव बनाना चाहता हूं, तो मुझे एक्सकोड का उपयोग करने की ज़रूरत है, इसलिए मुझे लगता है कि मैं अनुमान लगाऊंगा ... मेरे प्रोजेक्ट फ़ोल्डर को एक बड़ी गड़बड़ी छोड़ने के लिए प्रोग्रामिंग के 20 वर्षों के खिलाफ चला जाता है। – Justin808

+0

लॉल ... अच्छी तरह से वे एक बदल रहे हैं (जैसा कि बॉब डाइलन ने एक बार कहा था)।मेरी पृष्ठभूमि वेब विकास है जहां आपकी सभी छवियां छवि फ़ोल्डर में हैं और आपके पास एक अलग psd है और जब आप किसी छवि का उपयोग करना चाहते हैं तो आप छवियों फ़ोल्डर में सहेजते हैं, इसलिए यहां मैं सुझाव देता हूं कि आपके पास क्या करें: 'विकास/MyAppProject' है' इसमें '/ MyAppProject' और'/MyAppProjectResources' है। MyAppProjectResources में आपके पास PSDs और XML की आपकी संरचित फाइल सिस्टम है और जो भी और जब आपके एक्टुअल ऐप में उनका उपयोग करने की बात आती है तो आप या तो '/ MyAppProject' फ़ोल्डर में सहेज सकते हैं या परिणामी फ़ाइलों को खींच और छोड़ सकते हैं। –

+3

कारण है कि आप अपनी फाइलों को व्यवस्थित करना चाहते हैं क्योंकि कोई बाहरी उपकरण - गिट या आतिशबाजी, मान लें - फ़ाइल सिस्टम का उपयोग करें। –

6

ठीक है, इसलिए यहाँ यह कैसे काम करता है:

Xcode किसी भी फाइल के बारे में पता नहीं है जब तक आप इसे उनके बारे में बताओ। यही है, भले ही आप एक्सकोड प्रोजेक्ट में फ़ाइलों वाले फ़ोल्डर में खोजक (आमतौर पर एक बुरा विचार) में फ़ाइल जोड़ते हैं, तब तक यह तब तक नहीं जानता जब तक कि आप "प्रोजेक्ट में मौजूदा फ़ाइल जोड़ें" न हों।

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

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

संक्षेप में, अगर तुम क्या प्रोजेक्ट फ़ोल्डर में क्या अपनी परियोजना में के रूप में लगभग एक ही होना चाहते हैं, हमेशा

में लचीलापन "गंतव्य समूह के फ़ोल्डर में प्रतिलिपि आइटम" का चयन करके मौजूदा फ़ाइलों को जोड़ने एक्सकोड जानबूझकर है। यह तय करने के लिए आप कैसे चीजों को व्यवस्थित करना चाहते हैं।

+5

हम्म .. एक्सकोड में आप लचीलापन कहलाते हैं, मैं एक प्रमुख प्रमुख बग के रूप में देखता हूं। मैं प्रोजेक्ट 1 तरीके से व्यवस्थित क्यों करना चाहता हूं और आईएमओ, पूरी तरह से फाइल सिस्टम पर फ्यूबर किया जाना चाहूंगा? ** गंतव्य समूह के फ़ोल्डर में ** प्रतिलिपि आइटम ** फाइल सिस्टम पर प्रोजेक्ट फ़ोल्डर में व्यवस्थित फ़ाइलों को रखने के लिए कुछ भी नहीं करता है, यह प्रोजेक्ट के बाहर से प्रोजेक्ट के फ़ोल्डर की बड़ी गड़बड़ी में फ़ाइल को कॉपी करने की प्रतिलिपि बनाता है। – Justin808

+0

इसके बारे में एक बग रिपोर्ट दर्ज करना याद रखें। यह तब तक नहीं बदलेगा जब तक कि आप सही लोगों से शिकायत न करें। –

1

यह अच्छा होगा अगर एक्सकोड स्वयं को और फ़ाइल सिस्टम को सिंक में रख सके। दुर्भाग्य से यह नहीं करता है। इसे करने का एक कारण यह है कि आपके एससीसीएस में पदानुक्रम एक्सकोड में से एक से मेल खाता है।

मैं एक्सकोड में व्यवस्थित चीजों को रखने के लिए वापस आ गया हूं, और फाइल सिस्टम को "कक्षाएं" और "संसाधन" से अधिक में अलग नहीं कर रहा हूं।

16

मैं यह भी चाहता हूं कि एक्सकोड स्वचालित रूप से स्वयं को और फ़ाइल सिस्टम को सिंक में रखे।

इतना, कि मैंने acani-iphone on GitHub नामक प्रोजेक्ट के लिए मैन्युअल रूप से ऐसा करने में एक घंटे बिताया। असल में, मैंने फाइंडर का उपयोग करके बस कुछ फ़ाइलों को स्थानांतरित कर दिया, जैसा कि मैंने प्रसन्न किया, नए फ़ोल्डरों को बनाया। फिर, मैंने एक्सकोड पर वापस स्विच किया और देखा कि जिन फ़ाइलों को मैंने अभी ले जाया था वे अब लाल थे (क्योंकि एक्सकोड सोच रहा था कि वे हैं जहां से मैंने उन्हें स्थानांतरित किया और इसलिए उन्हें नहीं मिला)।

अद्यतन: मुझे अभी पता चला है कि मैं फिर लाल समूह या फ़ाइल पर क्लिक कर सकता था, दबाया गया सीएमडी + i (संदर्भ मेनू से जानकारी प्राप्त करें, जिसे आप लाल फ़ाइल पर राइट-क्लिक करके खोल सकते हैं या समूह), और सामान्य टैब के तहत, चुनें क्लिक करें, फिर पाया कि मैंने फाइल सिस्टम में फ़ाइल को कहाँ स्थानांतरित किया था। लेकिन, मैं ऐसा नहीं किया, यहाँ है कि मैं क्या बजाय किया है, जो भी काम करता है:

फिर, मैं सिर्फ Xcode में सभी लाल फ़ाइलों पर प्रकाश डाला और दबाया command + delete टूट (लाल) के संदर्भ को हटाने के लिए। फिर, मैंने समूह पर राइट-क्लिक किया, मैं फ़ाइलों को (आमतौर पर एक ही समूह) में जोड़ना चाहता था, और Add>Existing Files... पर क्लिक किया।फिर, मुझे फाइल सिस्टम पर नए स्थान पर एक ही फाइलें मिलीं। मैंने "आइटम को गंतव्य समूह के फ़ोल्डर में कॉपी किया है (यदि आवश्यक हो)" अनचेक किया गया है, मैंने रेडियो बटन को "किसी भी जोड़े गए फ़ोल्डर्स के लिए रिकर्सिवली समूह बनाएं" की जांच की है, और मैंने एनीनी को लक्षित करने के लिए ऐड की जांच की है, अगर मैं जो फाइलें जोड़ रहा था, उसका निर्माण करने के लिए इस्तेमाल किया जा रहा था Acani आईफोन ऐप।

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

मुझे पता चला है कि फ़ाइलें acani_Prefix.pch और acani-Info.plist जड़ फाइल सिस्टम निर्देशिका में रहना पड़ा (आप की तरह मैं तुम्हें इतना acani-Info.plist के लिए एक लाइन जोड़ सकते हैं लगता है कि इन फ़ाइलों को, कहीं और होना करने के लिए अनुमति देने के लिए सेट कर सकते हैं, हालांकि सेटिंग हो सकता है कि आप acani_Prefix.pch को स्थानांतरित/नाम बदल सकते हैं, लेकिन मैं फाइल सिस्टम पर रूट डीआईआर में उनके साथ ठीक हूं।

ऐसा करने में परेशान था, और शायद परेशानी के लायक भी नहीं, शायद विलंब, लेकिन आगे बढ़ना Xcode करने के लिए मौजूदा फ़ाइलों को जोड़ने, मैं पहले सुनिश्चित करें कि वे स्थान पर हैं मैं उन्हें फाइल सिस्टम पर होना चाहता हूँ बना देंगे।

0

मैं क्या d o प्रत्येक फ़ोल्डर का प्रतिनिधित्व करने के लिए एक समूह बना रहा है और फिर, फ़ाइलों को जोड़ने से पहले, दाहिने पैनल में, पहला टैब, "पथ" के नीचे तुरंत, एक आइकन है जो आपको फ़ोल्डर चुनने की अनुमति देता है। उस फ़ोल्डर संवाद में, मैं एक फ़ोल्डर बनाता हूं जो समूह से मेल खाता है और इसे चुनें।

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

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

+0

जबकि मैं इस बात से सहमत हूं कि यह दृष्टिकोण एक डेवलपर के लिए समस्या का समाधान करने लगता है, मुझे लगता है कि इसका परिणाम डेवलपर्स के समूह के बीच कम संगठित कोड आधार होगा। अन्य लोगों के साथ काम करते समय, मानक होना महत्वपूर्ण है। मेरे अनुभव में, सबसे अच्छा मानक सबसे कम कदम शामिल है। – jacobsimeon

0

मैं तुम्हें लग रहा है और व्यक्तिगत रूप से वास्तविक संरचना के बारे में परवाह नहीं नहीं कर सकते हैं और सिर्फ कार्यस्थानों पर भरोसा करते हैं।

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

कुछ मुद्दों स्रोत नियंत्रण हालांकि xcode4 दोनों Git और SVN के साथ काम करता हो सकता है।

2

Synx का उपयोग करें।

यह अपने Xcode समूहों से मेल करने के लिए डिस्क पर अपनी फाइल rearranges। मैं Xcode समूहों को बदलने वाले किसी भी कोड को करने से पहले इसे चलाने का प्रयास करता हूं, और यह प्रोजेक्ट को अच्छा और साफ रखता है।