2011-06-16 13 views
18

मैं आईओएस और प्रोग्रामिंग के लिए अपेक्षाकृत नया हूं, और मैंने पहले एक ऐप बनाया था, लेकिन यह स्टोरेज के लिए एक प्लिस्ट का इस्तेमाल करता था, जिसे मैंने दस्तावेज़ फ़ोल्डर में सहेजा था। अब, मैं कोर डेटा पर स्विच करने के बारे में सोच रहा हूं, लेकिन यह थोड़ा जटिल दिखता है, और मुझे यकीन नहीं है कि यह मेरे इच्छित काम के लिए काम करेगा या नहीं। मुझे डेटा का एक गुच्छा होने वाला है जिसे मुझे ग्राफ करने की आवश्यकता है, इसलिए मुझे यकीन नहीं है कि कोर डेटा इस के लिए सबसे अच्छा है, क्योंकि ऐसा लगता है कि मैं .xcdatamodeld फ़ाइल में सरणी प्रकार नहीं बना सकता। कोर डेटा के कुछ अन्य फायदे क्या हैं? क्या यह तेज़ है? उपयोग करने में आसान (एक बार जब आप इसे सेट अप करते हैं)?कोर डेटा का उपयोग करने के कुछ फायदे क्या हैं? (प्लेस्ट के विपरीत)

अद्यतन: किसी को भी सोच के लिए, मैं एप्लिकेशन समाप्त हो गया है, और यह पूरी तरह से लायक कैसे कोर डेटा का उपयोग करने में जानने के लिए था, और यह एक बहुत कम जटिल है कि मैं मूल रूप से सोचा था। Plists के साथ ऐसा करना नरक होगा। जिस तरह से वे इसे करने के बारे में जाते हैं, वह पहले थोड़ा सा गूढ़ लग रहा था, लेकिन अगर आप इसे इस्तेमाल करना शुरू करते हैं तो आप इसे प्राप्त करेंगे। रिश्तों वास्तव में इसके बारे में क्या भयानक हैं।

+0

सहायक होने के लिए आपको कोर डेटा और SQLite के बीच अंतर पर यह उत्तर मिल सकता है (http://stackoverflow.com/questions/523482/core-data-vs-sqlite-3/524301#524301)। –

उत्तर

24

मेरे सिर के ऊपर से कुछ फायदे:

  • बहुत बेहतर स्मृति प्रबंधन। एक प्लिस्ट के साथ आपको पूरी चीज को स्मृति में लोड करना होगा; कोर डेटा के साथ केवल वे ऑब्जेक्ट्स जिन्हें आप वर्तमान में उपयोग कर रहे हैं उन्हें लोड करने की आवश्यकता है। साथ ही, ऑब्जेक्ट्स लोड होने के बाद, वे सामान्य रूप से प्लेसहोल्डर "गलती" ऑब्जेक्ट्स होते हैं जिनकी संपत्ति डेटा तब तक लोड नहीं होता जब तक आपको इसकी आवश्यकता न हो।
  • उपर्युक्त से संबंधित, जब आपके पास परिवर्तन होते हैं, तो आप केवल बदले गए ऑब्जेक्ट्स को सहेज सकते हैं, न कि संपूर्ण डेटा सेट।
  • आप एनएस डिक्शनरी जैसे किसी चीज़ से उन्हें परिवर्तित करने के बजाय सीधे अपने मॉडल ऑब्जेक्ट्स को पढ़/लिख सकते हैं।
  • जब आप डेटा स्टोर से उन्हें लाते हैं तो ऑब्जेक्ट्स का अंतर्निहित सॉर्टिंग।
  • ब्याज की वस्तुओं के लिए अपने डेटा सेट को खोजने के लिए भविष्यवाणी की रिच सिस्टम।
  • संस्थाओं के बीच संबंध सीधे संबंधित वस्तुओं पर गुणों के रूप में सीधे संभाले जाते हैं। एक प्लिस्ट के साथ आपको किसी रिश्ते के लिए ऑब्जेक्ट आईडी स्टोर करने की आवश्यकता होगी, और उसके बाद संबंधित ऑब्जेक्ट देखें।
  • संपत्ति मूल्यों का वैकल्पिक स्वचालित सत्यापन।

डेटा मॉडल सरणी का उपयोग नहीं करते हैं, लेकिन "बहुत से" संबंध सेट के रूप में मॉडलिंग किए जाते हैं।

+0

+1। प्रत्येक प्रश्न के लिए चीजों को बताते हुए प्यार करें। #FanOfTom। – Bhavin

4

यह एक बात है कि आप क्या सहेज रहे हैं। सरल तारों, सरणी, शब्दकोशों के लिए, एक प्लेस्ट का उपयोग करना ठीक है। कुछ और जटिल (डेटा, छवियों, गैर-ऑब्जेक्ट जानकारी) या कई रिश्तों के साथ कुछ (गीत से एल्बम के बीच संबंध, या फोटोग्राफर के लिए फोटो के बीच संबंध), तो कुछ अधिक मजबूत समाधान की तरह कुछ SQLite की तरह बेहतर काम कर सकता है।

कोरडाटा SQLite के आस-पास एक उद्देश्य-सी-आधारित रैपर है। अगर आपको लगता है कि आप कुछ और जटिल बनाना चाहते हैं, तो कोरडाटा जाने का रास्ता हो सकता है।

आप एक त्वरित ट्यूटोरियल की जरूरत है, मैं बाहर की जाँच होगी: http://www.raywenderlich.com/934/core-data-tutorial-getting-started

यह मैं जा रहा है और मुझे मूल बातें CoreData के कामकाज में जानने के लिए अनुमति दी।

शुभकामनाएं!

+4

जबकि सत्य डेटा SQLite (आईफोन पर) का उपयोग करता है, यह एक कार्यान्वयन विवरण है और आपको कोर डेटा के बारे में सिर्फ एक रैपर के रूप में नहीं सोचना चाहिए।यह एक वस्तु दृढ़ता ढांचा है। यह आपके लिए डिस्क से सहेजने और बहाल करने को संभालता है। – kubi

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