2012-12-10 16 views
5

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

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

उत्तर

6
[NSBundle bundleWithPath:[NSString stringWithFormat:@"%@/%@", [[NSBundle mainBundle] bundlePath], pathToYourBundleWithinTheDotAppDirectory]; 

मुझे पता है कि कैसे आप पर हो।

+1

यह बंडल लोड नहीं करता है। ऐसा लगता है, बंडल स्वयं मुख्य अनुप्रयोग बंडल के अंदर है। इसलिए मुझे बंडल का मार्ग प्राप्त करना पड़ा, [[एनएसबंडल मेनबंडल] पथफॉर रिसोर्स: @ "माइबंडल" टाइप टाइप: @ "बंडल"] और फिर बंडल विथपाथ का उपयोग करके बंडल लोड करने के लिए पथ का उपयोग करें: विधि – Sandeep

+0

हालांकि, मैंने एक छवि जोड़ा बंडल में और pathForResource का उपयोग करके छवि लोड करने का प्रयास किया: टाइप टाइप: विधि लेकिन विधि शून्य है और फिर मैंने सिम्युलेटर एप्लिकेशन फ़ोल्डर में ब्राउज किया और देखा कि छवि की प्रतिलिपि नहीं बनाई जा रही है। – Sandeep

+1

आपको अपने निर्माण में "फ़ाइलें कॉपी करें" चरण जोड़ने की आवश्यकता हो सकती है। – hd1

2

इस तरह की कोशिश कुछ:

NSBundle* bundle=[NSBundle bundleWithIdentifier: @"bundle name"]; 

और जब आप परियोजना के लिए बंडल खींची यह सुनिश्चित करें कि आप इन विकल्पों को चुना है: एक बंडल के साथ

enter image description here

+0

मैंने मौजूदा एप्लिकेशन में लक्ष्य जोड़कर बंडल बनाया है। – Sandeep

1

परियोजनाओं के लिए, मैं उपयोग करता हूं:

// in this example, we load test.png from the bundle 
NSString *pathToResource = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"png"]; 

यह क्या बनाता है o सुविधाजनक यह है कि जब आपके पास स्थानीयकृत फाइलें होती हैं, तो यह वर्तमान उपयोगकर्ता लोकेल के लिए फ़ाइल को पथ प्रदान करती है। यह आसान है क्योंकि स्थानीय फाइलें मुख्य निर्देशिका में नहीं हैं, बल्कि अपने स्वयं के सबफ़ोल्डर में हैं (उदाहरण के लिए, अंग्रेजी स्थानीयकृत फाइलें @ "en.lproj" सबफ़ोल्डर में हैं), और उन्हें नाम से बुलाकर परेशानी है क्योंकि आपको आवश्यकता है पूरा रास्ता यह विधि आपके लिए रास्ता पाती है।

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