के साथ कोर डेटा दस्तावेज़-आधारित एप्लिकेशन मेरे पास एक दस्तावेज़-आधारित कोर डेटा एप्लिकेशन है जो इस प्रकार काम करता है। मैं वस्तुओं की एक पुस्तकालय रखने के लिए एक वैश्विक निरंतर स्टोर के लिए समर्थन जोड़ना चाहता हूं।ग्लोबल पर्सिस्टेंट स्टोर
मैंने अधिकांश प्रासंगिक दस्तावेज़ पढ़े हैं, और समझते हैं कि मुझे प्रबंधित ऑब्जेक्ट मॉडल में कॉन्फ़िगरेशन का उपयोग करना चाहिए। मैंने दो कॉन्फ़िगरेशन परिभाषित किए हैं: "दस्तावेज़ कॉन्फ़िगरेशन" और "लाइब्रेरी कॉन्फ़िगरेशन"। दस्तावेज़ कॉन्फ़िगरेशन में इकाइयां केवल दस्तावेज़ कॉन्फ़िगरेशन में हैं, और लाइब्रेरी कॉन्फ़िगरेशन में इकाइयां केवल लाइब्रेरी कॉन्फ़िगरेशन में हैं - यानी, कोई ओवरलैप नहीं है।
दस्तावेज़ तब कहते हैं, "जब आप एक समन्वयक बनाते हैं तो आप इस मॉडल का उपयोग करते हैं"। लेकिन मैं वास्तव में अपना स्वयं का निरंतर स्टोर समन्वयक नहीं बनाता क्योंकि मैं डिफ़ॉल्ट NSPersistentDocument समन्वयक का उपयोग कर रहा हूं।
कैसे सबसे अच्छा आगे बढ़ना है और किसी भी गलतफहमी को स्पष्ट करने में मदद करने पर कुछ सवाल मैं हो सकता है:
ए मैं NSPersistentDocument में NSPersistentStoreCoordinator प्राप्त करेंगे और उसके बाद की तर्ज पर यह करने के लिए एक नया लगातार दुकान जोड़ें:
NSPersistentStoreCoordinator * coordinator = [[myDocument managedObjectContext] persistentStoreCoordinator];
[coordinator addPersistentStoreWithType:NSXMLStoreType
configuration:@"LibraryConfiguration"
URL:url
options:nil
error:&error];
मैं सोच रहा हूँ कि यह एक समस्या है क्योंकि मैं के रूप में मैं डिफ़ॉल्ट NSPersistentDocument द्वारा प्रदान का उपयोग कर रहा NSPersistentDocument के लगातार दुकान समन्वयक में अन्य विन्यास परिभाषा ("DocumentConfiguration") प्रदान नहीं किया है हो सकता है। मुझे लगता है कि दस्तावेज़ को सहेजने के लिए समय आने पर शायद यह शून्य का उपयोग करेगा। और यदि हां, तो क्या यह एक समस्या होगी? यानी, समन्वयक कैसे एक सतत कॉन्फ़िगरेशन परिभाषा के साथ एक इकाई को सहेजने के लिए निरंतर स्टोर को जानेंगे यदि सभी कॉन्फ़िगरेशन सभी निरंतर स्टोर्स (इस मामले में दो) के लिए परिभाषित नहीं हैं? क्या मैं एनएसपीर्सिस्टेंट डॉक्यूमेंट के लगातार स्टोर के कॉन्फ़िगरेशन ("दस्तावेज़ कॉन्फ़िगरेशन") को सेट/सहेजने से पहले सेट करने में सक्षम हूं? NSPersistentDocument डॉक्स से:
Saving a new document adds a store of the default type with the chosen URL and invokes save: on the context. For an existing document, a save just invokes save: on the context.
बी यह मेरे अपने NSPersistentStoreCoordinator और NSManagedObjectContext उदाहरणों बनाने के लिए, परिभाषित विन्यास के साथ दो लगातार भंडार जोड़ने, और फिर NSPersistentDocument इन NSPersistentStoreCoordinator और NSManagedObjectContext उदाहरणों का उपयोग करते हैं, और बेहतर होगा पुराने लोग? यदि हां, तो मैं addPersistentStoreWithType: ... विधि के लिए NSPersistentDocument के लिए यूआरएल कैसे निर्दिष्ट करूं? ऐसा लगता है कि यह यूआरएल केवल एक बार शीर्षक रहित दस्तावेज़ सहेजा गया है। (इस पर परीक्षण करते हुए, दस्तावेज़ को पहली बार सहेजा नहीं जाता है, तब तक कोई अस्थायी लगातार स्टोर नहीं होता है (लगातार निरंतर स्टोर समन्वयक पर विधि लगातार)।
सी या यह बेहतर होगा NSPersistentDocument अकेला छोड़ दो, और अपने खुद के NSPersistentStoreCoordinator उदाहरण बनाने के लिए है कि मैं लगातार पुस्तकालय की दुकान के लिए विशेष रूप से इस्तेमाल करते हैं और कामयाब पुस्तकालय ऑब्जेक्ट मॉडल? दस्तावेज़ों का कहना है कि एनएसपीर्सिस्टेंटस्टोरकॉर्डिनेटर के कई उदाहरणों को मल्टीथ्रेड किए गए कोर डेटा अनुप्रयोगों में उपयोग किया जाना चाहिए, लेकिन मुझे बहुप्रचारित कोर डेटा समर्थन की आवश्यकता नहीं है। क्या यह एनएसपीर्सिस्टेंटस्टोर कोऑर्डिनेटर के दो उदाहरणों के लिए वांछनीय है - पुस्तकालय के लिए एक और दस्तावेज़ों के लिए एक (अंतर्ज्ञान कहता है कि यह आवश्यक नहीं है और संभवतः सही दृष्टिकोण नहीं है)?
कोई सुझाव?
लेकिन NSManagedObjectContext के लिए प्रलेखन में लगातार स्टोर समन्वयक प्राप्त करने/सेट करने के तरीके हैं, एक नहीं जोड़ना। यानी, मेरी समझ से, आपके पास एक प्रबंधित ऑब्जेक्ट संदर्भ से जुड़े एक से अधिक लगातार स्टोर समन्वयक नहीं हो सकते हैं। (एक प्रबंधित ऑब्जेक्ट संदर्भ से जुड़े लगातार स्टोर समन्वयक एकाधिक निरंतर स्टोर प्रबंधित कर सकते हैं, लेकिन यह अलग है)। – Dalmazio
क्षमा करें, मैं गलत लिखता हूं। आप वास्तव में 'स्टोरर्सिस्टेंटस्टोर विथ टाइप: कॉन्फ़िगरेशन: यूआरएल: विकल्प: त्रुटि:' – TechZen
के साथ लगातार स्टोर समन्वयक में एकाधिक स्टोर जोड़ते हैं, ठीक है, लेकिन इस स्थिति के लिए अभी भी समस्या है (वैश्विक निरंतर स्टोर को एकीकृत करना और दस्तावेज़-आधारित की दुकान को एकीकृत करना आवेदन) को जोड़ने के लिए addPersistentStoreWithType: ... एनएस में वर्णित NSPersistentDocument के लगातार स्टोर समन्वयक पर)। – Dalmazio