कोर डेटा में कोई "मूल" सरणी या शब्दकोश प्रकार नहीं है। आप एक NSArray
या NSDictionary
एक परिवर्तनीय विशेषता के रूप में संग्रहीत कर सकते हैं । यह NSCoding
सरणी या डिक्शनरी को NSData
विशेषता के लिए अनुक्रमित करने के लिए उपयोग करेगा (और इसे एक्सेस करने पर उचित रूप से डिसेरिएलाइज़ करता है)। इस दृष्टिकोण का लाभ यह है कि यह आसान है। नकारात्मक पक्ष यह है कि आप सरणी या शब्दकोश में क्वेरी नहीं कर सकते (यह डेटा स्टोर में BLOB के रूप में संग्रहीत है) और यदि संग्रह बड़े हैं, तो आपको डेटा स्टोर से बहुत डेटा स्थानांतरित करना होगा (यदि यह है) SQLite डेटा स्टोर) केवल संग्रह के एक छोटे हिस्से को पढ़ने या संशोधित करने के लिए।
विकल्प सरणी या शब्दकोश संग्रह के शब्दार्थ को मॉडल करने के लिए कोर डेटा टू-कई रिश्तों का उपयोग करना है। Arrays आसान होती है, इसलिए इससे शुरुआत करें। कोर डेटा-कई रिश्ते वास्तव में एक सेट को मॉडलिंग कर रहे हैं, इसलिए यदि आपको सरणी जैसी कार्यक्षमता की आवश्यकता है, तो आपको या तो सेट को सॉर्ट करना होगा (भ्रूण की संपत्ति का उपयोग करना ऐसा करने का एक सुविधाजनक तरीका है) या इकाई में एक अतिरिक्त सूचकांक विशेषता जोड़ें सरणी आइटम संग्रहीत करता है और अनुक्रमणिका को स्वयं प्रबंधित करता है। यदि आप एक सजातीय सरणी का संग्रह कर रहे हैं (सभी प्रविष्टियाँ समान हैं), तो सरणी संस्थाओं के लिए इकाई विवरण को मॉडल करना आसान है। यदि नहीं, तो आपको यह तय करना होगा कि आइटम डेटा को संग्रहीत करने या आइटम संस्थाओं का एक परिवार बनाने के लिए एक परिवर्तनीय विशेषता का उपयोग करना है या नहीं।
एक शब्दकोश की मॉडलिंग के लिए एक कुंजी और एक मूल्य को संग्रहीत करने वाली संस्थाओं के एक सेट के लिए कई-कई संबंधों की आवश्यकता होगी। कुंजी और मूल्य दोनों सरणी के लिए आइटम इकाई के अनुरूप हैं, ऊपर वर्णित है। इसलिए वे या तो देशी प्रकार के हो सकते हैं (यदि आप उन्हें समय से पहले जानते हैं), एक परिवर्तनशील विशेषता या एक प्रकार के विशिष्ट संस्थानों के परिवार से उदाहरण के लिए संबंध।
यदि यह सब थोड़ा कठिन लगता है, तो यह है। कोर डेटा की तरह स्कीमा-डिपेंडेंट फ्रेमवर्क में शूकरिंग मनमाना डेटा कठिन है।
पतों की तरह संरचित डेटा के लिए, संस्थाओं को स्पष्ट रूप से मॉडलिंग करते समय व्यतीत करना आसान होता है (उदाहरण के प्रत्येक भाग के लिए एक विशेषता)। शब्दकोश को मॉडल करने के लिए सभी अतिरिक्त कोड से बचने के अलावा, यह आपके UI को आसान बनाता है (बाइंडिंग "बस काम करेगा") और आपका सत्यापन तर्क आदि बहुत स्पष्ट है क्योंकि इसे कोर डेटा द्वारा संभाला जा सकता है।
अपडेट करें
OS X 10.7 के रूप में, कोर डेटा में एक ऑर्डर किया गया सेट प्रकार शामिल होता है जिसका उपयोग किसी सरणी के स्थान पर किया जा सकता है। यदि आप 10.7 या उसके बाद का लक्ष्य बना सकते हैं, तो ऑर्डर किए गए (सरणी-जैसे) संग्रह के लिए यह सबसे अच्छा समाधान है।