2011-01-18 14 views
5

मेरे पास दो इकाइयां पुस्तकें और बंडल हैं। एक पुस्तक किसी एक से अधिक बंडलों तक नहीं हो सकती है। तो मेरे पास इन संस्थाओं के बीच कई द्वि-दिशात्मक संबंध हैं।आईफोन - कोर डेटा एनएसएससेट रिलेशनशिप

मैं पुस्तक हिस्से पर इस संबंध के मूल्य को स्थापित करने जा रहा हूं।

तो विशेषता एक नियमित रूप से एक था, मैं बस कुछ की तरह

aBook.title = @"this is my title"; 

करते हैं मैं एक किताब के लिए शीर्षक सेट करना चाहता था होगा। लेकिन चूंकि यह एक द्वि-दिशात्मक संबंध है, कई डेटा कहते हैं कि यह एक एनएसएसएटी विशेषता है।

मेरा प्रश्न है: मैं इस विशेषता से मूल्य कैसे सेट और पढ़ूं?

मैंने पहली बार सोचा कि यह एक नियमित एनएसएसटी था। तो, उत्पाद मैं साधारण पढ़ने के बाद

NSSet *aSet = Book.fromBundle; 

किया, लेकिन मेरी निराशा के लिए Aset निहित शून्य वस्तुओं

तो मैंने सोचा कि मैं गलती से यह स्थापित करने गया था। मैं यह पहले कर

Book.fromBundle = [NSSet setWithObject:aBundle]; 

(हाँ, सभी परिवर्तनों को डेटाबेस से बचा लिया गया था)

मैं कुछ याद आ रही है सेट? धन्यवाद

उत्तर

1

यह एक सामान्य सेट है, लेकिन कोर डेटा सीधे एक नया सेट (इस कारण से) को असाइन करने के खिलाफ सलाह देता है। यदि आप कस्टम क्लास का उपयोग कर रहे हैं, तो मानक कार्यान्वयन में आपके लिए उपयोग करने के लिए addFromBundleObject: और removeFromBundleObject: विधियां शामिल होंगी। यदि आप कस्टम क्लास का उपयोग नहीं करते हैं, या इन विधियों को लागू नहीं करना चुनते हैं, तो आप एक सेट प्राप्त करने के लिए mutableSetValueForKey: विधि का उपयोग कर सकते हैं जिसे आप संशोधित कर सकते हैं।

NSMutableSet *mutableSet = [book mutableSetValueForKey:@"fromBundle"]; 
[mutableSet addObject:aBundle]; 
+0

धन्यवाद। ऐप अब और दुर्घटनाग्रस्त नहीं हो रहा है, लेकिन इस आदेश का उपयोग करने के बाद कई बार एक पुस्तक में अलग-अलग बंडल जोड़ने के लिए, पुस्तक सिर्फ आखिरी एक को स्टोर करती है। मैंने बाहरी ऐप में डेटाबेस का निरीक्षण किया है क्योंकि मैंने अभी तक यह पता लगाने के लिए अनुरोध पर भविष्यवाणी नहीं की है कि बंडल ऑब्जेक्ट बंडल से है या नहीं। बहुत सारे रिश्तों पर मैं [एनएसपीडिकेट predicateWithFormat: @ "(सेबंडल ==% @)", एबंडल] का उपयोग करूंगा, लेकिन मुझे कोई संकेत नहीं है कि एनएसएससेट पर ऐसा कैसे करें ... यदि आप इसके साथ भी मदद कर सकते हैं, मैं सराहना करता हूं (यदि यह बहुत ज्यादा नहीं पूछता है) ...: डी – SpaceDog

+0

एक से कई रिश्तों मूल रूप से कई से अधिक रिश्तों के समान हैं। दोनों को एनएसएससेट के रूप में दर्शाया जाता है। एकमात्र अंतर यह है कि व्यस्त संबंध कैसे सेट किया जाता है। आप एक ही काम करने में सक्षम होना चाहिए जो आप एक से कई रिश्ते के लिए करेंगे। – ughoavgfhw

+0

धन्यवाद !!!!!!!!!!! – SpaceDog

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