2017-03-15 12 views
9

मैं वर्तमान में क्लाउडकिट फ्रेमवर्क और दस्तावेज़ों की कमी या उदाहरणों को कोर डेटा और क्लाउडकिट को सिंक करने के तरीके को दिखाने का तरीका सीख रहा हूं।कोर डेटा और क्लाउडकिट के बीच रिकॉर्ड को सिंक्रनाइज़ करने के लिए कैसे कुशलतापूर्वक

मैंने क्लाउडकिट को समर्पित सभी डब्ल्यूडब्ल्यूडीसी वीडियो (2014, 2015, 2016) को देखा है, लेकिन उनमें से कोई भी हमें कोर डेटा के साथ समन्वय को कार्यान्वित करने का तरीका बता रहा है। मुझे कोई नया उदाहरण, ट्यूटोरियल या किताबें नहीं मिल रही हैं, यह दिखाती है कि इस सिंकिंग को कैसे कार्यान्वित किया जाए।

मुझे पता है कि क्लाउडकिट (सुविधा API नहीं) द्वारा ऑपरेशंस एपीआई का उपयोग करना और क्लाउडकिट को समर्पित नए डब्ल्यूडब्ल्यूडीसी 2016 वीडियो में किए गए परिवर्तनों की सदस्यता लेने के लिए प्रभावी है, लेकिन कोरडाटा के साथ मानचित्रण एक वास्तविक समस्या है।

उदाहरण के लिए, मान लें कि मैं नोट्स ऐप के समान एक ऐप बनाना चाहता हूं। ऑफ़लाइन होने पर, उपयोगकर्ता अपने नोट्स बना सकते हैं और उनके साथ उनके मूल डेटा डेटाबेस में सहेज सकते हैं। जब डिवाइस ऑनलाइन जा रहा है तो ऐप सर्वर पर क्या बदलता है और सर्वर (क्लाउडकिट) में नए बनाए गए रिकॉर्ड सहेजता है।

जब ऐप शुरू होता है, तो यह क्लाउडकिट से परिवर्तनों के लिए भी मिलता है और यदि कोई परिवर्तन होता है, तो यह नए परिवर्तनों के साथ स्थानीय कैश (कोर डेटा) अपडेट करता है।

मैं सिंक्रनाइज़ेशन का एक सामान्य पैटर्न होने की सराहना करता हूं। कोर डेटा विधियों के साथ समन्वयित करने के लिए कहां और उन्हें कैसा दिखना चाहिए?

इस बारे में किसी भी जानकारी या मदद की सराहना करेंगे।

मैं स्विफ्ट 3, Xcode 8, आईओएस से 10 का उपयोग कर रहा

+0

एडेलमेयर, क्लाउडकिट स्टोर के बारे में मेटाडेटा स्टोर करता है, आखिरी अपडेट, आखिरी एक्सेस, अनुमति इत्यादि। आप इस डेटा को अपने मूल डेटा में कॉपी कर सकते हैं और जब आप कनेक्ट कर सकते हैं तो क्रॉस चेक कर सकते हैं कि आपके पास कोई अपडेट है या नहीं। आपको यह SO उत्तर भी देखना चाहिए, यहां कुछ हो सकता है http://stackoverflow.com/questions/24509782/saving-modified-data-in-cloudkit?rq=1 – user3069232

उत्तर

4

कोर डेटा पहले से ही iCloud में सिंक करने के लिए क्षमता के साथ उपयोगकर्ता प्रदान करता है। क्लाउडकिट का उपयोग करने की कोई आवश्यकता नहीं है।

Design For Core Data In iCloud

लेकिन हाँ, iCloud के साथ कोर डाटा मान्य नहीं है। फिर भी, इसमें not been discontinued है, और सेब को बंद करने के लिए तत्काल योजनाएं नहीं हैं, वे बस इसके उपयोग को हतोत्साहित करना चाहते हैं। लेकिन इसमें कई उपकरणों से अपडेट को तर्कसंगत बनाने में भी समस्याएं हैं।

किसी भी मामले में, मैं क्लाउड किट के साथ ऐसा करने का सवाल देख रहा हूं। दो जवाब; पहला निम्नलिखित का उपयोग करना है;

Seam in GitHub

दूसरा मैन्युअल रूप से ऐसा करने के लिए है,

Designing for CloudKit

कुंजी है कि यहाँ बादल किट रिकॉर्ड मेटाडाटा जरूरत मज़बूती से रिकॉर्ड अपडेट प्रबंधित करने की है, तो आप अपने कोर डाटा डेटाबेस में है कि मेटाडाटा को बचाने के लिए है सक्षम होने के लिए है। CKRecord कक्षा में एक विधि encodeSystemFields(with:) शामिल है जो उन फ़ील्ड को डेटा रिकॉर्ड में एन्कोड करेगा जो आपके डेटाबेस में संग्रहीत किया जा सकता है, और फिर जब आप CKRecord को पुनर्स्थापित करने की आवश्यकता हो तो उचित डिकोडर का उपयोग कर सकते हैं।

वैसे भी, मैं इसे स्वयं करना शुरू कर रहा हूं। जब मैं इसे प्राप्त करता हूं तो मैं इसे अधिक जानकारी के साथ अपडेट कर दूंगा।

+0

कसम खाता नहीं है लेकिन मुझे नहीं लगता कोर डेटा iCloud साझाकरण कर सकता है, इसलिए यदि आपको उस सुविधा की आवश्यकता है जिसे आपको क्लाउडकिट का उपयोग करके लागू करना है। – Jonny

+0

कोरडाटा iCloud को आईओएस 10 के बाद से हटा दिया गया है। यह कभी भी काम नहीं करता है। – Andy

+0

मेरी प्रतिक्रिया की तीसरी पंक्ति बताती है कि बाहर। यह कहना मूर्खतापूर्ण है कि यह कभी काम नहीं करता है। लेकिन हाँ, अब उस समस्या को हल करने के बेहतर तरीके हैं। –

0

ऐप्पल ने हाल ही में एक गाइड प्रकाशित किया है जो इस प्रश्न का उत्तर देने लगता है। डिवाइस पर क्लाउडकिट डेटा को स्टोर करने के तरीके को देखने के लिए ऐप्पल के Maintaining a Local Cache of CloudKit Records देखें।

हालांकि यह मार्गदर्शिका डिवाइस को लिखने के लिए नमूना कोड प्रदान नहीं करती है, यह शेष प्रश्न का उत्तर देती है। यह आपको क्लाउडकिट से परिवर्तन लाने और डिवाइस पर संग्रहीत डेटा बनाने के बारे में बताता है।

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

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