2011-07-15 15 views
29

मैंने अपने आईओएस ऐप में एक संस्करण कोर डेटा मॉडल बनाया है, और इसमें अब तक कई संस्करण बनाए गए हैं (.xcdatamodeld बंडल के भीतर कई .xdatamodel फ़ाइलें)। ऐप शिपिंग करने से पहले, मैं इन पुराने संस्करणों को हटाने पर विचार कर रहा हूं, इसलिए मैं एक साफ डेटा मॉडल से शुरू कर सकता हूं - और इस चरण में डेटा हानि कोई समस्या नहीं है।कोर डेटा संस्करण xcdatamodel फ़ाइलों को हटाने

क्या यह संभव है? और सभी कोर डेटा फ़ाइलों को हटाने और नए मॉडल को पुनर्निर्मित किए बिना इसे हासिल करने का सबसे अच्छा तरीका क्या होगा।

+0

, यहाँ भी देखें समान प्रश्न भी सरल जवाब के साथ: http://stackoverflow.com/questions/7708392/how-to-delete-an-old-unused-data-model-version-in- xcode-4 – charles

उत्तर

47

पुराने मॉडल को हटाने का अर्थ है कि आप किसी भी मौजूदा डेटा स्टोर माइग्रेट नहीं कर सकते हैं। मुझे लगता है कि डेटा हानि के बारे में आपका बयान दिया गया है। यदि आप ताजा शुरू करना चाहते हैं, तो आप वर्तमान xcdatamodel ले सकते हैं, इसे कहीं और कॉपी करें (उदा। आपका डेस्कटॉप), फिर xcdatamodeld फ़ोल्डर को हटाएं। इस बिंदु पर, आप अपने सहेजे गए xcdatamodel को वापस एक्सकोड में खींच सकते हैं और इसे गैर-संस्करण वाली फ़ाइल के रूप में पुनः जोड़ सकते हैं।

+1

बहुत अच्छा काम करता है। एक अतिरिक्त कदम: जबकि आपका xcdatamodel दूर हो गया है, इसकी पैकेज सामग्री खोलें और पुराने मॉडल हटाएं। या, पैकेज पैकेज से इच्छित एक मॉडल को वापस खींचें। – Jeff

+1

मेरी टिप्पणी अपडेट कर रहा है: "केवल एक मॉडल को वापस खींचें" जो समस्याएं पैदा कर सकता है। मैं उस कोड से फंस गया जो मेरे मॉडल को खोजने में सक्षम नहीं था क्योंकि जो मैंने वापस खींच लिया था वह एक एक्ससीडेटैटोडेल था, जबकि एक्ससीडेटैटोडेल एक पैकेज (एक या अधिक xcdatamodel) है। – Jeff

+1

मैंने आपके द्वारा उल्लिखित चरणों का पालन करने का प्रयास किया लेकिन यह xcdatamodelId को एक्सकोड में अपरिहार्य बना दिया। ये कदम मेरे लिए बेहतर काम करते थे: http://stackoverflow.com/a/8107530/127036 –

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