मैं कोर डेटा ऐप पर काम कर रहा हूं (आईफोन 3.0 के लिए, हालांकि मुझे नहीं लगता कि वास्तव में यहां एक फर्क पड़ता है) और इसे डेटा से भरे "स्टार्टर" डेटाबेस के साथ शिप करने की आवश्यकता होगी। एसक्यूएलएट के साथ, मेरे पास ऐप की पहली लॉन्च पर ऐप की दस्तावेज़ निर्देशिका में बंडल से पॉप्युलेटेड डेटाबेस की प्रतिलिपि होगी और उसके बाद उस डेटाबेस को लोड करें - सभी जानकारी इसके साथ आएगी और हम जाने के लिए तैयार होंगे। लेकिन कोर डेटा के साथ, मुझे सच में यकीन नहीं है कि अगर मैं केवल पर्सिस्टेंट स्टोर को ऐप बंडल में सहेज सकता हूं और कोर डेटा को अपनी चीज करने से पहले इसे कॉपी कर सकता हूं। क्या इससे कोई समस्या होगी? प्रारंभिक डेटा का थोड़ा सा हिस्सा है, इसलिए मैं इसे किसी अन्य प्रारूप में पैकेज नहीं करना चाहता हूं और इसे इसके माध्यम से पार्स करना है।कोर डेटा एप्लिकेशन के लिए बेस डेटा प्रदान करें?
उत्तर
हां, आप एक पूर्व-जनसंख्या वाले लगातार स्टोर पर प्रतिलिपि बना सकते हैं।
मैंने एक मैक ऐप बनाया जो एक स्टोर को पॉप्युलेट करता है। यह मेरे बंडल में कॉपी किया गया है और शुरुआत में, डॉक्स निर्देशिका में कॉपी किया गया है। यह ठीक काम करता है। मुझे बताया गया है कि कोर डेटा बुक्स उदाहरण उसी तरह विकसित किया गया था।
कृपया ध्यान दें कि इसका मतलब यह नहीं है कि आप किसी भी पुराने SQLite फ़ाइल पर प्रतिलिपि बना सकते हैं। यह कोर डेटा लगातार स्टोर होना चाहिए, हालांकि मुझे लगता है कि आप समझते हैं कि आपके प्रश्न के आधार पर।
क्या आपको लगता है कि मेरे ऐप के पहले रन पर लगातार स्टोर को प्रोग्रामेटिक रूप से पॉप्युलेट करना ठीक है? क्या यह मेरे ऐप को स्थानांतरण के लिए काफी छोटा नहीं करेगा क्योंकि मुझे थोड़ी देर के लिए SQLite डेटाबेस शामिल करना होगा? – leolobato
यदि आपका ऐप प्रतीक्षा करने वाले उपयोगकर्ता को पंसद किए बिना इसे जल्दी से कर सकता है, तो ऐसा करने का एक अच्छा तरीका लगता है। – Hunter
सावधान रहें। जब तक आपका डेटा एल्गोरिदमिक रूप से जेनरेट नहीं किया जा सकता है, ऐसा लगता है कि रनटाइम पर आपके डेटा को पॉप्युलेट करके फ़ाइल-आकार की बचत आपको आपके एप्लिकेशन में शामिल करने के लिए आवश्यक डेटा-पॉपुलटिंग कोड की मात्रा से ऑफसेट हो जाएगी। –
असल में एक चाल है: आपको उस फ़ाइल का नाम देना होगा जिसे आप ".sqlite", ".bin" के अलावा किसी एक्सटेंशन के साथ कॉपी करने जा रहे हैं। अन्यथा जब यह बिल्ड चरण के दौरान ऐप में कॉपी करता है तो यह फ़ाइल की सामग्री को बदल देगा और यह लोड नहीं होगा।
हैलो जैफ क्या आप इसे स्पष्ट कर सकते हैं? संशोधित फ़ाइल स्टैम्प की जांच कर रहा हूं, मैं देखता हूं कि फ़ाइल को हमेशा एक्सटेंशन के बावजूद संशोधित किया जाता है। आपका मतलब यह है कि एक्सकोड फ़ाइल सामग्री को बदलता है? –