अंकित के लिए शीर्ष साइट समझाने है यहाँ टीएल; डॉ पतला: कोर डेटा का उपयोग करें।
यहां लंबा रूप है:
आप कई मापदंड इस्तेमाल कर सकते हैं जबकि कोर डाटा, एक ORM (FMDB) या सीधे SQLite कॉल के बीच चयन करने के लिए, इस विकल्प की वास्तविक लागत अपना समय इसका इस्तेमाल करने, एप्पल के से आता है अन्य परियोजनाओं से समर्थन और लाभ। (RESTKit, जो कोर डेटा पर आरईएसटी सेवाएं मानचित्र करता है, इन दिनों लोकप्रिय है।)
इसलिए, समय का एक बड़ा प्रतिशत, 90 +% (एक बना हुआ स्टेट) कहता है, आईओएस पर उत्तर का उपयोग करना होगा कोर डेटा क्यूं कर? एक बार जब आप इसे लटका लें और कुछ छोटी सहायक विधियों का निर्माण करें, तो कोर डेटा आपको एक सतत कंप्यूटिंग दुनिया में रखता है - उद्देश्य-सी ऑब्जेक्ट ग्राफ़। कोर डेटा आपको एक गतिशील भाषा का उपयोग करने के तरीके के बारे में सिखाएगा जो आपके आईओएस प्रोग्रामिंग के हर दूसरे पहलू की मदद करेगा। इसलिए, आप अधिक उत्पादक हैं। ढांचे से लड़ो मत।
यदि आप किसी अन्य ऐप से बड़े, जटिल SQLite डेटाबेस & स्कीमा को ला रहे हैं, तो यह एफएमडीबी या SQLite का उपयोग करने के लिए लागत प्रभावी हो सकता है। लेकिन मुझे शक है। कोर डेटा डीबी में डीबी माइग्रेट करने के लिए एक साधारण मैक-आधारित कमांड लाइन ऐप लिखने का आपका समय एक सीमित और सरल कार्य है। आप उद्देश्य-सी में अधिकांश व्यावसायिक तर्क को फिर से लिखना चाहते हैं। (हां, सी ++ और ऑब्जेक्टिव-सी ++ दोनों अच्छी तकनीकें हैं। क्या आपके डेटाबेस बिजनेस लॉजिक को वास्तव में मेमोरी सीमित डिवाइस पर काम करने के लिए ट्यून किया गया है? मुझे ऐसा नहीं लगता था।)
कोर डेटा प्रदर्शन पर बम रैप प्राप्त करता है। यह वास्तव में काफी तेज़ है। डीबी का उपयोग करने के बजाय आपको इसे अलग-अलग उपयोग करना होगा। विशेष रूप से, आप स्टोर से डेटा को हमेशा से अधिक प्राप्त करते हैं और फिर इसे विभिन्न सेट और सरणी पर सीधे भविष्यवाणी करके परिशोधित करते हैं।आईओएस उपकरणों पर, जहां फ्लैश आश्चर्यजनक रूप से धीमा है, यह ओवर-फ़ेच रणनीति विशेष रूप से प्रभावी है। इन उपकरणों पर वास्तव में आपके पास बहुत सी रैम है, प्रदर्शन प्राप्त करने के लिए इसका उपयोग करें। (हां, मुझे पता है कि पोर्टेबल बिजनेस लॉजिक पर मेरे उपरोक्त दस्तक के लिए यह एक स्पष्ट विरोधाभास है। लेकिन वास्तव में, डेस्कटॉप या सर्वर पर्यावरण से पोर्ट किए गए कोड में डिस्क की गति, स्मृति की मात्रा और वास्तविकता की इतनी सारी मान्य धारणाएं हैं बैकिंग स्टोर के साथ एक वीएम, यह एक बैटरी संचालित, मेमोरी सीमित डिवाइस पर एक फंकी मेमोरी मॉडल के साथ अच्छी तरह से काम नहीं करेगा। [यह एंड्रॉइड डिवाइस पर भी बहुत अच्छा काम नहीं करेगा।]) आप अपने डेटा को सरल बनाने के लिए भी असामान्य करेंगे इसे विभिन्न आईओएस और मैक ओएस एक्स यूआई विगेट्स में प्रदर्शित करना। ऐसे कुछ एप्लिकेशन हैं जहां कोर डेटा बराबर SQLite डीबी की तुलना में धीमा हो जाएगा। उनको कहीं और विस्तृत किया गया है। एक बड़ा दावा यह है कि अपस्ट्रीम डेटाबेस द्वारा आईडी को परिभाषित किए जाने वाले कार्यों को कोर डेटा का प्रदर्शन सही होता है। लेकिन यह कुछ हद तक न्यायसंगत अनुक्रमण और ओवर-फ़ेचिंग द्वारा कम किया जा सकता है।
मोबाइल उपकरणों के बारे में भी याद रखने की बात यह है कि डेटाबेस आकार, क्योंकि ये इंटरनेट की पत्तियों पर मोबाइल डिवाइस हैं, आमतौर पर मामूली आकार का होता है। इसलिए, प्रदर्शन प्राप्त करना आसान है। सर्वर की दुनिया से कई सबक इस मोबाइल, बैटरी संचालित दुनिया पर लागू नहीं हो सकते हैं।
दूसरे शब्दों में, आपको आईओएस/मैक ओएस एक्स पर उद्देश्य-सी का उपयोग करने के लिए "सभी में" जाना होगा, आपको कोर डेटा का उपयोग करने से कुछ महत्वपूर्ण उत्पादकता लाभ भी मिलेंगे।
एंड्रयू
आप किस डेटा को संग्रहीत कर रहे हैं, इसमें कितना है, आपको किस प्रकार की पुनर्प्राप्ति की आवश्यकता है, क्या यह उपयोगकर्ता द्वारा संपादन योग्य है? – jrturton
मेरा सवाल यही है .. मेरा मतलब है कि मुझे किस आधार पर उपयोग करना चाहिए और सेब या किसी और द्वारा प्रदान किए गए कोई दिशानिर्देश हैं .. या यह ऐसा कुछ है जो समय के साथ मेरे पास आएगा। –
यदि आपको एक ही समय में कई पंक्तियां अपडेट, डालने या हटाने की आवश्यकता है, तो कोर डेटा एक अच्छा विकल्प नहीं होगा। – AechoLiu