2014-04-26 5 views
7

के विभिन्न फ़ोल्डर्स में दो छवियों का समान नाम मेरे पास NSBundle के अलग-अलग फ़ोल्डर्स में दो छवियां हैं जो समान नाम हैं।NSBundle

चेतावनी:: आउटपुट फ़ाइल के लिए एकाधिक निर्माण आदेशों /Users/xxxxxXXXXXXXxxxxxxx.app/image.png

मुझे पता है कि NSBundle =>NSBundle में सभी फ़ोल्डर हैं यह स्पष्ट रूप से एक चेतावनी का उत्सर्जन करता है "समूह", वास्तविक निर्देशिका नहीं और इन समूहों में मौजूद फ़ाइलें अभी भी बंडल की जड़ में स्थित हैं।

मेरे आवेदन में, मुझे अपने कार्य को कम करने के लिए अलग-अलग "फ़ोल्डर" में समान नामों वाली छवियां रखने की आवश्यकता है।

तो मेरी प्रश्न हैं:

  • वहाँ बिना किसी चेतावनी के NSBundle के विभिन्न फ़ोल्डर में दो छवियों को रखने के लिए कोई तरीका है? और मैं इसे कैसे ला सकता हूं?

  • यदि कोई ऐप स्टोर में अपना ऐप अपलोड करते समय इस चेतावनी के साथ कोई समस्या नहीं है? मेरा मतलब है, ऐप्पल द्वारा मेरा ऐप खारिज कर दिया जाएगा या नहीं?

+0

साहब की जाँच करें: - http://stackoverflow.com/questions/3692352/adding-multiple-resources-with-the-same-name-to-xcode-for-iphone –

+0

@NitinGohel - धन्यवाद सर मुझे पहले से ही पता है .. लेकिन इसे हल करने का कोई तरीका है? कृपया मेरा प्रश्न पढ़ें। और आपका ध्यान देने के लिए दोस्त भी धन्यवाद। :) –

+0

@NitinGohel - सर ने इसे उत्तर के रूप में रखा ताकि मैं इसे स्वीकार कर सकूं :) –

उत्तर

3

यहाँ है इस कार्य को करने के लिए एक बहुत अच्छा लिंक कृपया यह Xcode Groups vs. Folder References देखें जो स्पष्ट रूप से इसके बारे में वर्णन करता है

समूह

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

  • समूह डिस्क पर फ़ोल्डर पदानुक्रम के लिए कोई समानता नहीं रख सकता है। आपके पास फाइंडर में प्रोजेक्ट फ़ोल्डर्स हो सकते हैं जो एक्सकोड प्रोजेक्ट में भी मौजूद नहीं है, और इसके विपरीत। विसंगति के कारण, फ़ाइलों को ढूंढने से भ्रमित हो सकता है

  • यदि आप फ़ाइल को स्थानांतरित करते हैं या एक्सकोड के बाहर इसका नाम बदलते हैं, तो संदर्भ ब्रेक और फ़ाइल लाल हो जाती है। फ़ाइल प्रबंधन एक वास्तविक दर्द बन जाता है।

फ़ोल्डर संदर्भ

फ़ोल्डर संदर्भ के लाभ हैं:

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

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

  • आपको नाम विवादों के बारे में चिंता करने की ज़रूरत नहीं है क्योंकि निर्देशिका संरचना उत्पाद बंडल में संरक्षित है। जब तक वे विभिन्न निर्देशिकाओं में रहते हैं, तब तक दो फाइलें वही नाम साझा कर सकती हैं।

2

आपके पास फ़ोल्डर है: छवियां। इसे पुनर्नामित करके इसे बंडल में बदलें: images.bundle। अपनी परियोजना के लिए इस खींचें और:

आपके पास:

images.bundle --- folder1 --- image1.png   
       --- folder2 --- image1.png 
       --- folder3 --- image1.png 

आप फ़ोल्डर की सरणी मिलता है, प्राप्त फ़ोल्डर आप चाहते हैं के बाद, आप छवि प्राप्त कर सकते हैं आप चाहते हैं:

NSString *path = [[NSBundle mainBundle] bundlePath]; 
path = [path stringByAppendingString:@"/images.bundle"]; 
NSError *error; 
NSArray * directoryContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:&error]; 
संबंधित मुद्दे