2011-06-07 8 views
37

मैं एक फ़ाइल paylines.txt जो Xcode में अपने iOS परियोजना के Resources फ़ोल्डर के अंदर रहता है TextFiles नामित फ़ोल्डर के अंदर जोड़ लिया है।[NSBundle mainBundle] pathForResource का उपयोग कर एक फ़ाइल तक पहुँचने: ofType: inDirectory:

NSString* filePath = [[NSBundle mainBundle] pathForResource:@"paylines" ofType:@"txt" inDirectory:@"TextFiles"]; 
NSLog(@"\n\nthe string %@",filePath); 

कोड प्रिंट:

2011-06-07 14:47:16.251 slots2[708:207] 

the string (null) 

उत्तर

8

अच्छी तरह से मैं गलती मैं करने गया था मैं परियोजना के लिए किसी समूह को जोड़ना था बजाय के लिए और अधिक instructions

+1

हां, जैसा कि लिंक में कहा गया है: पॉप-अप विंडो में सुनिश्चित करें कि आप "किसी भी जोड़े गए फ़ोल्डरों के लिए समूह बनाएं" के बजाय "किसी भी जोड़े गए फ़ोल्डर के लिए फ़ोल्डर संदर्भ बनाएं" का चयन करें – AlvaroSantisteban

161

मैं भी एक ही समस्या हो रही थी

इस कोड मैं फ़ाइल का उपयोग करने के लिए उपयोग है। समाधान मैंने पाया (xcode 4.x में) है:

जाएं: लक्ष्य -> ​​"के चरण का निर्माण" -> "प्रति बंडल संसाधन" तब उस विशेष फ़ाइल यहाँ जोड़ें। यदि वह फ़ाइल पहले से ही जोड़ दी गई है, तो इसे हटाएं और इसे दोबारा जोड़ें।

प्रोजेक्ट और रन साफ़ करें। यह काम करता हैं। :)

+1

मेरे लिए फ़ाइल वहां थी, इसलिए मैंने इसे हटा दिया और इसे फिर से जोड़ा, साफ किया और यह काम किया! –

+0

मेरे मामले में, किसी भी तरह से मेरे ऐप के लिए 'लक्ष्य में जोड़ें' चेकबॉक्स अनचेक किया गया था; जब तक मैंने फ़ाइल को हटा नहीं दिया तब तक इसका एहसास नहीं हुआ और फिर इसे फिर से जोड़ा। ऊप्स! – geerlingguy

+2

दूसरों और अन्य समान उत्तरों से टिप्पणियों पर जोर देना: कभी-कभी आप यह सही करते हैं और यह अभी भी काम नहीं करता है। यदि ऐसा है, तो उस प्रोजेक्ट फलक (बिल्डफेस/बंडल संसाधन) में बंडल से फ़ाइल को निकालना सुनिश्चित करें, और उसके बाद इसे फिर से जोड़ें। और फिर परियोजना> साफ। आखिर में मेरे लिए काम किया! –

8

असली निर्देशिका जोड़ने इस प्रयास करें पता चला, इसकी मेरे लिए काम कर।

NSString *str=[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"paylines.txt"]; 

सिम्युलेटर

NSURL *rtfUrl = [[NSBundle mainBundle] URLForResource:@"paylines" withExtension:@".txt"]; 
1

जाओ "लक्ष्य" के लिए -> "के चरण का निर्माण", अपने लक्ष्य का चयन करें, "चरण बनाएँ" टैब का चयन करें, क्लिक करें "जोड़ें चरण का निर्माण", और " कॉपी फाइल जोड़ें "। गंतव्य को "उत्पाद निर्देशिका" में बदलें। अपनी फ़ाइल को "फ़ाइलें जोड़ें" अनुभाग में खींचें।

+0

यदि आप मुझे यह भी बता सकते हैं कि मैंने क्या किया इस फ़ाइल को कॉपी फाइल सूची से हटा दिया गया है, मैं इसकी सराहना करता हूं –

0

परियोजना/विशिष्ट फ़ोल्डर का चयन करें -> राइट क्लिक -> परियोजना में फ़ाइलें जोड़ें -> उस फ़ाइल का चयन करें जिसे आप जोड़ना चाहते हैं।

यह मेरे लिए काम किया।

1

मैक OSX के मामले में,

लक्ष्यों पर जाएं -> चरण का निर्माण क्लिक + नया फ़ाइलों की प्रतिलिपि बनाने चरणों करें उत्पाद निर्देशिका बनाने और वहाँ फ़ाइल ड्रॉप।

परियोजना को साफ और चलाएं।

10

जब मैं फ़ाइलों को खींचता हूं, तो "लक्ष्य में जोड़ें" बॉक्स डिफ़ॉल्ट रूप से अन-टिकित लगता है। अगर मैं इसे बिना छेड़छाड़ छोड़ देता हूं तो मुझे समस्या का वर्णन किया गया है। फ़ाइलों को हटाकर इसे ठीक करके उन्हें वापस खींचें लेकिन "लक्ष्य में जोड़ें" पर टिकटें सुनिश्चित करें। enter image description here

2

आपको केवल यह सुनिश्चित करना है कि नीचे दिखाया गया चेकबॉक्स चेक किया गया है।

enter image description here

1

@Neelam वर्मा की जवाब या @ Dawid का जवाब है, जो @Neelam वर्मा के जवाब के रूप में ही अंतिम परिणाम है पालन करने के बाद, अंतर यह है कि @ Dawid के जवाब किया जा रहा है खींचें और फ़ाइल की बूंद Xcode में साथ शुरू होता है प्रोजेक्ट और @ नीलाम वर्मा का जवाब पहले से ही एक्सकोड प्रोजेक्ट का एक हिस्सा है, मुझे अभी भी NSBundle.mainBundle().pathForResource("file-title", ofType:"type") नहीं मिल सका, मेरी वीडियो फ़ाइल ढूंढने के लिए।

मैंने सोचा क्योंकि शायद मेरी फाइल एक्सकोड प्रोजेक्ट में घिरे समूह में थी, इसलिए यह कारण था, इसलिए मैंने वीडियो फ़ाइल को मेरे एक्सकोड प्रोजेक्ट की जड़ में ले जाया, फिर भी कोई भाग्य नहीं, यह मेरा कोड था:

guard let path = NSBundle.mainBundle().pathForResource("testVid1", ofType:"mp4") else { 
     print("Invalid video path") 
     return 
    } 

मूल रूप से, यह मेरी फ़ाइल का नाम था: testVid1.MP4, testVid1.mp4 करने के लिए वीडियो फ़ाइल का नाम बदलने मेरी समस्या का समाधान हो, तो कम से कम ofType स्ट्रिंग तर्क केस संवेदी है।

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