2009-09-02 10 views
12

मेरे पास देश का नाम और देश कोड वाला एक इकाई वस्तु देश है। यह एनएसएमएनेज ऑब्जेक्ट का एक उप-वर्ग है और मैं इसे अपने डेटा को लगातार स्टोर में संग्रहीत करने के लिए कोर डेटा मॉडल के साथ उपयोग कर रहा हूं।सामान्य ऑब्जेक्ट के रूप में प्रबंधित ऑब्जेक्ट के बाहर NSManagedObject उपclass

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

कि मैं निम्नलिखित

[NSManagedObject alloc] init] 

प्रारंभ सफलतापूर्वक किया के रूप में देश प्रारंभ किया है, लेकिन मुझे लगता है कि वस्तु के लिए किसी भी संपत्ति सेट करने में सक्षम नहीं हूँ। इसलिए मैंने एक अन्वेषण किया। उसमें मैंने पाया कि, NSManagedObject के लिए init दस्तावेज़ीकरण के अनुसार समर्थित नहीं है।

मुझे नहीं पता कि कोरडाटा के साथ-साथ एक सामान्य ऑब्जेक्ट के साथ NSManagedObject देश का उपयोग कैसे करें।

उत्तर

10

NSManagedObject वर्ग प्रलेखन के अवलोकन के 2 पैरा:

एक प्रबंधित वस्तु एक इकाई वर्णन ( NSEntityDescription का एक उदाहरण) है कि वस्तु के बारे में मेटाडेटा प्रदान साथ जुड़ा हुआ है ( का नाम शामिल इकाई का प्रतिनिधित्व करता है और इसके विशेषताओं और रिश्तों के नाम) और के साथ एक प्रबंधित ऑब्जेक्ट संदर्भ है जो ऑब्जेक्ट ग्राफ़ में परिवर्तनों को ट्रैक करता है। यह महत्वपूर्ण है कि एक प्रबंधित ऑब्जेक्ट कोर डेटा के साथ उपयोग के लिए ठीक से कॉन्फ़िगर किया गया है। यदि आप सीधे प्रबंधित ऑब्जेक्ट को तुरंत चालू करते हैं, तो आपको नामित प्रारंभकर्ता (initWithEntity: insertIntoManagedObjectContext :) को कॉल करना होगा।

विधि के प्रलेखन से:

महत्वपूर्ण: यह विधि NSManagedObject के लिए नामित प्रारंभकर्ता है। आपको किसी प्रबंधित ऑब्जेक्ट को द्वारा इनिट भेजने के लिए प्रारंभ नहीं करना चाहिए।

दस्तावेज़ीकरण वास्तव में बहुत अच्छा है।

आप एक व्यवहार्य कोरडाटा स्टैक के बाहर एक NSManagedObject का उपयोग करने की कोशिश नहीं करना चाहते हैं। NSManagedObjects को स्पष्ट रूप से एक सही ढंग से कॉन्फ़िगर किए गए कोर डेटा वातावरण के भीतर काम करने के लिए डिज़ाइन किया गया है। यदि आपको अस्थायी उदाहरण की आवश्यकता है, तो आप या तो इन-मेमोरी स्टोर बना सकते हैं या अपने नियमित स्टोर में एक बना सकते हैं और इसे पहले हटाए बिना परिवर्तनों को सहेज नहीं सकते हैं।

+0

धन्यवाद !! तो शुरू करना संभव नहीं है क्योंकि हम एक सामान्य वस्तु के लिए करते हैं। मुझे लगता है कि आप निरंतर स्टोर के लिए NSInMemoryStoreType का जिक्र कर रहे हैं, इसलिए डाली गई इकाई अस्थिर रैम मेमोरी में संग्रहीत की जाएगी। मेरे पास एक और सवाल है - जब वास्तव में इसे साफ़ कर दिया जाएगा या क्या हमें इसे मैन्युअल रूप से फ़्लश करना होगा? – raksja

+0

जब आप इसे स्पष्ट रूप से (मैन्युअल रूप से) या जब आपका ऐप छोड़ देता है तो इसे साफ़ कर दिया जाएगा ... InMemoryStores अन्य स्टोरों की तरह ही काम करता है, बस यह दृढ़ता केवल स्मृति में है। – bbum

2

initWithEntity:insertIntoManagedObjectContext: का उपयोग करें और प्रबंधित ऑब्जेक्ट संदर्भ के लिए nil का उपयोग करें।

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