2011-08-10 17 views
5

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

मैं या तो इन कॉल में से एक (वे सभी काम) का उपयोग कर 'flds' फ़ोल्डर के लिए हो रही कोशिश की है:

[[[NSBundle mainBundle] bundleURL] URLByAppendingPathComponent:@"flds"] 
[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"flds"] 
[[NSBundle mainBundle] pathForResource:@"flds" ofType:@""] 

फिर NSFileManager की copyItemAtPath:toPath:error: विधि (या पथ स्ट्रिंग के बजाय URL का उपयोग करते समय यूआरएल समकक्ष) का उपयोग करके प्रतिलिपि बनाना।

ये सभी रणनीतियों आईपैड सिम्युलेटर और आईपैड डिवाइस पर पूरी तरह से अपवाद के साथ काम करते हैं: जब मैं (सफलतापूर्वक) विज्ञापन वितरण के लिए निर्माण करता हूं, तो आईप्यून्स में .app और .mobileprovision को खींचें, सिंक करें और फिर डिवाइस पर ऐप चलाएं, सिस्टम अब नहीं सोचता कि 'flds' फ़ोल्डर मौजूद है! मैं बिना किसी किस्मत के कई घंटों तक इसकी जांच करने की कोशिश कर रहा हूं। दोबारा, मुझे पूरा यकीन है कि यह सिम्युलेटर और एक्सकोड से चल रहे डिवाइस पर दोनों काम करता है, लेकिन जब आईट्यून्स के माध्यम से सिंक नहीं किया जाता है।

विचार?

[[NSBundle mainBundle] pathForResource:@"flds" ofType:nil inDirectory:nil] 

हालांकि, जब मैं इस पथ का उपयोग दस्तावेज़ निर्देशिका में उसके नए स्थान पर फ़ोल्डर की प्रतिलिपि करने के लिए:

मुझे लगता है कि निम्नलिखित कॉल iTunes के माध्यम से iPad एप्लिकेशन समन्वयित करने के बाद भी सफलतापूर्वक फ़ोल्डर पथ हो जाता है की खोज की , केवल फ़ोल्डर ही और .txt फ़ाइल में (जिसे मैंने एक परीक्षण के रूप में रखा है, यह वास्तव में वहां नहीं होना चाहिए) कॉपी किया गया है, न कि 6-7 खाली सबफ़ोल्डर। दोबारा, वही पैटर्न स्वयं दिखाता है: Xcode से चल रहे सिम्युलेटर और डिवाइस दोनों पर अपेक्षित कार्य करता है ('test.txt' के साथ 'flds' फ़ोल्डर और खाली सबफ़ोल्डर को सफलतापूर्वक कॉपी किया जाता है), लेकिन iTunes (केवल 'flds' फ़ोल्डर के माध्यम से सिंक होने पर नहीं 'test.txt' की प्रतिलिपि बनाई गई है, उपफोल्डर्स नहीं)। क्या यह वास्तव में copyItemAtPath:toPath:error: का इरादा व्यवहार है? और iTunes के माध्यम से समन्वयित करने के बाद यह अलग तरीके से क्यों व्यवहार करेगा?

+0

मुझे यकीन नहीं है कि आपने यह कोशिश की है, लेकिन क्या आपने यह देखने के लिए जांच की है कि क्या फ़ोल्डर flds अंतिम संस्करण (द .app जिसे आप iTunes पर खींचते हैं) बंडल में ऐप पर राइट क्लिक करके और पैकेज दिखाएँ चुनकर मौजूद है सामग्री? आप उन फ़ाइलों और फ़ोल्डरों को ढूंढने में सक्षम होना चाहिए जिन्हें आप खोजक के माध्यम से वहां एक्सेस करने का प्रयास कर रहे हैं। – Mark

+0

मैंने कोशिश की है। फ़ोल्डर निश्चित रूप से वहाँ है। मैंने 'flds' के उपफोल्डरों में से एक में .txt फ़ाइल डालने और पथ के माध्यम से इसे एक्सेस करने का प्रयास किया: प्रकार: और वास्तव में काम करता है। फ़ोल्डर प्राप्त करना स्वयं नहीं करता है। – hsdev

+0

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

उत्तर

0

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

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