2012-11-15 19 views
18

क्या कोई भी 5 सेटअप विधियों में से प्रत्येक का विवरण दे सकता है?5 जादुई रिकॉर्ड सेटअप विधियों के बीच क्या अंतर है?

(void) setupCoreDataStack; 
(void) setupAutoMigratingDefaultCoreDataStack; 
(void) setupCoreDataStackWithInMemoryStore; 
(void) setupCoreDataStackWithStoreNamed:(NSString *)storeName; 
(void) setupCoreDataStackWithAutoMigratingSqliteStoreNamed:(NSString *)storeName; 

प्रत्येक क्या करते हैं और प्रत्येक के लिए उपयोग केस क्या है?

उत्तर

27
setupCoreDataStack 

जब आप MagicalRecord के साथ शुरुआत कर रहे हों तो इसका उपयोग करें। विधि के अनुसार, यह आपके डिफ़ॉल्ट कोर डेटा स्टैक को सेट करेगा। ढेर के टुकड़े अच्छी तरह से जानते हैं और इसमें शामिल हैं: NSPersistentStore, NSPersistentStoreCoordinate, NSManagedObjectModel और एक डिफ़ॉल्ट NSManagedObjectContext। कोर डेटा के काम करने के लिए इनमें से प्रत्येक में से कम से कम एक को तत्काल और कॉन्फ़िगर किया जाना चाहिए। MagicalRecord एक SQLite लगातार इन/लायब्रेरी/एप्लिकेशन समर्थन // स्थित दुकान के साथ अपने ढेर कॉन्फ़िगर करने के लिए इस एक विधि। SQLite

setupAutoMigratingDefaultCoreDataStack 

प्रदान करता है जब आप संस्करण अपने मॉडल, आप अपने डेटा को स्थानांतरित करने की आवश्यकता होगी। यह विधि पिछले (उपरोक्त) विधि के समान ही करेगी, लेकिन ऑटो माइग्रेशन भी सक्षम करेगी।

setupCoreDataStackWithInMemoryStore; 

कभी-कभी, जैसे कि जब आप यूनिट परीक्षण लिख रहे हों, तो आप अपना ऐप समाप्त होने पर अपना डेटा दूर जाना चाहते हैं। यह विधि कोरडाटा स्टैक भी स्थापित करेगी (जैसा ऊपर बताया गया है) लेकिन SQLite स्टोर की बजाय, यह सिस्टम मेमोरी (रैम) में लगातार स्टोर बनाता है।

setupCoreDataStackWithStoreNamed:(NSString *)storeName 

कभी-कभी आप उस फ़ाइल नाम को कस्टमाइज़ करना चाहते हैं जहां आपका डेटा रहता है। इस विधि पहले के रूप में ही होता है, अर्थात् कोर डेटा ढेर की स्थापना, और विशिष्ट स्थान में एक SQLite दुकान रखने, लेकिन .sqlite के बजाय, दुकान storeName.sqlite

setupCoreDataStackWithAutoMigratingSqliteStoreNamed:(NSString *)storeName 

नाम पर है यह करता है उपर्युक्त विधि के समान, लेकिन ऑटो माइग्रेशन भी सक्षम है। जब आप अपने मॉडल का संस्करण बनाते हैं तो आपको ऐसा करने की आवश्यकता होगी और एक साधारण माइग्रेशन है जिसे बस सक्षम करने की आवश्यकता है।

आप Apple's Core Data Reference Documentation

+1

पर पर कोर डेटा माइग्रेशन अधिक पढ़ सकते हैं कैसे आप MagicalRecord करने के लिए एक xcdatamodeld फ़ाइल सहयोगी करते हैं? MagicalRecord xcdatamodeld विशेषताएँ जैसे "बाहरी रिकॉर्ड फ़ाइल में स्टोर" का सम्मान करेगा? – zakdances

+1

डिफ़ॉल्ट रूप से, MagicalRecord मर्ज किए गए मॉडल का उपयोग करेगा FromBundle: एक शून्य पैरामीटर के साथ विधि। यह एक्सकोड द्वारा प्रदान किए गए (भयानक) बॉयलरप्लेट कोड में भी है। यह स्वचालित रूप से आपके लिए इसका आंकड़ा करता है। आवश्यकता होने पर मॉडल फ़ाइल निर्दिष्ट करने के लिए अतिरिक्त सहायक हैं (यूनिट परीक्षण एक और आम जगह है जहां यह आवश्यक है) – casademora

+0

मैं अभी भी थोड़ा उलझन में हूं ... मर्ज किए गए मॉडल FromBundle स्वचालित रूप से xcdatamodeld फ़ाइलों के लिए प्रोजेक्ट संरचना को स्कैन करेगा? यदि आपके पास एक से अधिक xcdatamodeld है तो क्या होता है? क्या उन संस्थाओं (और उनके गुण) जिन्हें आप उन xcdatamodeld फ़ाइलों में घोषित करते हैं, उन्हें NSManagedObjects से मिलान करने की आवश्यकता है जिन्हें आप MagicalRecord के लिए उपclass करते हैं? – zakdances

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