2012-03-07 19 views
7

मेरे पास ऐप स्टोर में एक ऐप है जो डेटा डेटा का उपयोग करने के लिए कोर डेटा का उपयोग करता है। अपवाद छवियों को संग्रहीत कर रहा है। मैं उपनिर्देशिकाओं में छवि निर्देशिका में दस्तावेज़ों को संग्रहीत करता हूं और कोर डेटा स्टोर में उपयुक्त ऑब्जेक्ट विशेषता में उस छवि के लिए NSRL संदर्भ संग्रहीत करता हूं।ऐप अपडेट, एनएसआरएल, और दस्तावेज़ निर्देशिका

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

तो मेरे पास कुछ प्रश्न हैं। क्या मैं गारंटी दे सकता हूं कि अनुप्रयोग उपनिर्देशिका जिसमें लोग एक ही ऐप के संस्करण डाउनलोड करते हैं, वही होगा, जो इसे गैर-विकास उपकरणों के लिए एक गैर-मुद्दा प्रदान करता है?

क्या मुझे इन संसाधनों के स्थान का प्रतिनिधित्व करने के लिए रिश्तेदार छवि यूआरएल या तारों को संग्रहित करना चाहिए, या क्या मुझे पूरा यूआरएल होने के साथ समाप्त होने के साथ ठीक होना चाहिए?

धन्यवाद इतना, फेलिप

उत्तर

13

आप सापेक्ष URL का उपयोग फ़ाइलों के लिए संदर्भ स्टोर करने के लिए करना चाहिए। निरपेक्ष URL एक ऐप अपडेट

फ़ाइलें सहेजी गयी ऐप अपडेट

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

  • Application_Home/दस्तावेज़
  • Application_Home/लाइब्रेरी

अन्य उपयोगकर्ता निर्देशिकाओं में से फ़ाइलें हालांकि यह भी पर ले जाया जा सकता है: निम्नलिखित निर्देशिकाओं में से फ़ाइलें अद्यतन प्रक्रिया के दौरान संरक्षित करने की गारंटी दी जाती है आपको अपडेट के बाद मौजूद होने पर पर भरोसा नहीं करना चाहिए।

https://developer.apple.com/library/ios/#DOCUMENTATION/iPhone/Conceptual/iPhoneOSProgrammingGuide/PerformanceTuning/PerformanceTuning.html

सैंडबॉक्स में Thx, आवेदन घर भी उपयोगकर्ता घर है। इसलिए यूनिक्स टिल्डे का उपयोग करना संभव है जो उपयोगकर्ता घर के लिए एक छोटा सा हाथ है, यानी ~/Documents, ~/Library और इसी तरह।

-[NSString stringByAbbreviatingWithTildeInPath] का उपयोग एक सापेक्ष ~ पथ में पूर्ण पथ को चालू करने के लिए करें।और -[NSString stringByExpandingTildeInPath] के साथ इसे उलट दें।

+0

आपको बहुत बहुत धन्यवाद! यही वही है जो मुझे जानने की जरूरत है! – flizit

+2

मुझे नहीं पता था कि iTunes अद्यतन स्थापित करने पर एक नई ऐप निर्देशिका बनाई गई थी: मैं पूर्ण पथों को अमान्य होने का उपयोग करके प्रतीकात्मक लिंक प्राप्त कर रहा था। तो इस व्यवहार आईओएस डेवलपर्स से सावधान रहें! :) –

+0

वह लिंक टूटा हुआ है। आज़माएं: https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/PerformanceTips/PerformanceTips.html –

0

मुझे लगता है कि आप देख रहे हैं निम्नलिखित है:

NSString *appDocumentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; 
संबंधित मुद्दे