2009-07-04 15 views
7

में इंडेक्स किए गए रिश्ते मैं आईफोन एसडीके पर कोर डेटा का उपयोग करने के साथ शुरू कर रहा हूं और मैं एक ऑर्डर की तरह एक ऑर्डर सूची सहेज रहा हूं। हालांकि, पुनर्प्राप्त होने पर कोर डेटा में संबंध सेट के रूप में व्यक्त किए जाते हैं। इससे ऑर्डर को सहेजना मुश्किल हो जाता है जिसमें ऑब्जेक्ट्स स्थित होते हैं।कोर डेटा

वस्तुओं का पुन: आदेश देने पर एक अच्छा उदाहरण तालिका दृश्य में डेटा आइटम होगा। प्रबंधित ऑब्जेक्ट पर इंडेक्स प्रॉपर्टी को शामिल करना एक आसान समाधान होगा।

निम्न पदानुक्रम पर विचार करें:

दस्तावेज़ < -कई करने वाली many-> DataItem

अलग दस्तावेज़ उदाहरणों में एक ही DataItem के लिए लिंक कर सकते हैं, और प्रत्येक दस्तावेज़ का संदर्भ हो सकता है एक या अधिक DataItem (रों) । इसलिए, डेटाइटम में इंडेक्स प्रॉपर्टी होने से उस इंस्टेंस की कम पुन: प्रयोज्यता हो जाएगी, यानी आप केवल दस्तावेज़ के एक उदाहरण के लिए इंडेक्स को ही सहेज सकते हैं।

मैं पदानुक्रम बड़े करीने से एक तालिका दृश्य में आदेश दिया है कि कैसे पेश कर सकते हैं की कोई भी विचार, लेकिन अभी भी प्रत्येक DataItem उदाहरण पुन: प्रयोज्य रहते हैं? धन्यवाद!

उत्तर

3

एक अच्छा समाधान तालिका दृश्य में स्थिति में डेटाइटम को मैप करने के लिए दस्तावेज़ में एक अलग डेटा संरचना रखना है। एक ही डेटाइटम को कई पदों में मौजूद होने की अनुमति देने के अलावा, यदि आपको एकाधिक दस्तावेज़ों में डेटाइटम जोड़ने की आवश्यकता है तो यह समाधान भी काम करेगा।

वापस जब मैं कोर डेटा ऑब्जेक्ट्स रखने की विभिन्न रणनीतियों को देख रहा था, तो मुझे blog post मिला जो बताता है कि नमूना कोड सहित बहुत विस्तार से इसे कैसे किया जाए।

7

आप किसी अन्य संस्था के साथ यह कर सकता है, इस तरह: alt text http://gallery.me.com/davedelong/100084/Screenshot-20on-202009-07-04-20at-2010-34-56-20AM/web.jpg?ver=12467253090001

एक दस्तावेज़ कुछ इस तरह का उपयोग करके अपने वास्तविक dataItems मिल सकता है:

NSSet * documentDataItems = [[document orderedDataItems] valueForKey:@"dataItem"]; 

इसी तरह, एक DataItem अपने सभी दस्तावेजों मिल सकता है ऐसा करके:

NSSet * dataItemDocuments = [[dataItem orderedPositions] valueForKey:@"document"]; 
+0

चित्र टूटा हुआ प्रतीत होता है। –

+0

@ बीजे होमर - धन्यवाद; स्पष्ट रूप से twitpic स्थिर लिंकिंग पसंद नहीं है। मैंने इसे MobileMe पर अपलोड किया। –

15

ओएस एक्स शेर (10.7) के रूप में यह अब और अधिक सीधे आगे है। कोको को अब एक नई NSOrderedSet कक्षा के लिए समर्थन है जो कोर डेटा के साथ संगत है। यह कार्यक्षमता आईओएस में भी उपलब्ध है हालांकि आईओएस 5.0 या उसके बाद की आवश्यकता है। इसका अर्थ यह है कि यदि आप चाहते हैं कि आपका ऐप आईओएस या ओएस एक्स के पिछले संस्करणों के साथ पिछड़ा संगत हो।

ऑर्डर प्राप्त करने के लिए आपको केवल कोर डेटा मॉडल संपादक खोलना है, तो एक का चयन करें - कई रिश्ते और "आदेश दिया" चेक-बॉक्स की जांच करें।

+0

क्या आप इस नए एपीआई पर किसी भी दस्तावेज के बारे में जानते हैं? मैंने इसे रिलीज नोट्स में आधिकारिक तौर पर चर्चा की है। उदाहरण के लिए, मैं तालिका दृश्य – Dov

+0

में इस आदेश द्वारा रिकॉर्ड प्रदर्शित करने के बारे में जानना चाहता हूं, NSOrderSet के क्लास संदर्भ के मेरे मूल उत्तर में लिंक है। हालांकि, मुझे विशेष रूप से तालिका दृश्यों के भीतर सर्वोत्तम उपयोग मामलों से संबंधित कुछ भी नहीं पता है। –

+1

'NSOrderedSet' वर्तमान में iCloud के साथ एक साथ उपयोग नहीं किया जा सकता है। –