Hindi (हिंदी) translation by Taruni Rampal (you can also view the original English article)
2012 में, Apple ने iOS 5 के साथ आईक्लाउड को पेश किया। उसी समय, कंपनी ने घोषणा की कि डेवलपर्स के पास कई API के माध्यम से आईक्लाउड तक पहुंच होगी। पहले, डेवलपर्स के पास तीन ऑप्शन थे:
हालांकि ये API परफेक्ट नहीं हैं। एक बड़ी कमी उनकी ट्रांसपेरेंसी की कमी है। कोर डेटा इंटीग्रेशन, विशेष रूप से, यहां तक कि सबसे अनुभवी डेवलपर्स के बीच फ़्रस्ट्रेशन और कन्फूशन की स्थिति पैदा हुई है। जब कुछ गलत होता है, तो डेवलपर्स को पता नहीं होता है कि दोषी क्या या कौन है। यह उनके कोड या Apple में एक समस्या हो सकती है।
क्लॉउकीट
WWDC 2014 में, Apple ने क्लॉउकीट पेश किया, जो एक नया फ्रेमवर्क है जो सीधे Apple के आईक्लाउड सर्वर के साथ इंटरैक्ट करता है। काफी सारे फ्रेमवर्क के साथ PaaS (Platform as a Service) करने योग्य है, जैसे कि फायरबेस। फायरबेस की तरह, ऐप्पल एक फ्लेक्सिबल API और एक डैशबोर्ड प्रदान करता है जो डेवलपर्स को ऐप्पल के आईक्लाउड सर्वर पर स्टोर्ड डेटा में एक झलक प्रदान करता है।
क्लॉउकीट के बारे में मुझे जो सबसे ज्यादा पसंद है, वह है Apple की फ्रेमवर्क के प्रति अपनी कमिटमेंट। कंपनी के अनुसार, आईक्लाउड ड्राइव और आईक्लाउड फोटो लाइब्रेरी क्लाउडकिट के टॉप पर बने हैं। इससे पता चलता है कि क्लॉउकीट फ्रेमवर्क और इसकी इंफ्रास्ट्रक्चर मजबूत(रोबस्ट) और रिलाएबल है।
एक डेवलपर के रूप में, कमिटमेंट और इम्पोर्टेन्ट का यह साइन महत्वपूर्ण है। अतीत में, ऐप्पल कभी-कभी API जारी करता था जो बग्स से ग्रस्त थे या मुख्य विशेषताओं की कमी थी, क्योंकि कम्पनियाँ अपने बनाये गए कुत्ते के भोजन को खुद नहीं खाती है। यह क्लॉउकीट के लिए सही नहीं है। और वह होनहार है।
क्या आपको क्लॉउकीट का उपयोग करना चाहिए?
key-वैल्यू स्टोरेज और इंटीग्रेशन स्टोरेज के अपने उपयोग हैं, और Apple इस बात पर जोर देता है कि क्लॉउकीट मौजूदा आईक्लाउड API को रिप्लेस या अपग्रेड नहीं करता है। कोर डेटा के लिए भी यही सच है। क्लॉउकीट लोकल स्टोरेज की पेशकश नहीं करता है, उदाहरण के लिए। इसका मतलब है कि अगर कोई नेटवर्क कनेक्शन के बिना डिवाइस पर चल रहा एप्लिकेशन बहुत बेकार है तो यह पूरी तरह से क्लॉउकीट पर निर्भर करता है।
Apple यह भी जोर देता है कि क्लॉउकीट के साथ काम करते समय एर्रर से निपटना महत्वपूर्ण है। यदि कोई सेव ऑपरेशन विफल हो जाता है, उदाहरण के लिए, और यूजर को सूचित नहीं किया जाता है, तो वह यह भी नहीं जान सकती है कि उसका डेटा सेव नहीं गया था और खो गया था।
क्लॉउकीट स्ट्रक्चर्ड के साथ-साथ क्लाउड में नॉन-स्ट्रक्चर्ड डेटा को स्टोर करने का एक शानदार उपाय है। यदि आपको कई उपकरणों पर डेटा तक पहुंचने के लिए एक समाधान की आवश्यकता है, तो क्लॉउकीट निश्चित रूप से विचार करने का एक ऑप्शन है।
2015 के WWDC में, Apple ने वही किया जो कुछ डेवलपर्स को उम्मीद थी। इसने क्लॉउकीट के लिए एक वेब सर्विस की घोषणा की। इसका मतलब यह है कि क्लॉउकीट का उपयोग एंड्रॉइड और विंडोज फोन सहित लगभग किसी भी प्लेटफॉर्म पर किया जा सकता है।
Apple का मूल्य निर्धारण(प्राइसिंग) बहुत कॉम्पिटिटिव है। क्लॉउकीट के साथ शुरुआत करना फ्री है, और यह अधिकांश ऍप्लिकेशन्स के लिए फ्री है। यदि आप क्लाउड में डेटा स्टोर करने की योजना बनाते हैं, तो क्लॉउकीट निश्चित रूप से विचार करने योग्य है।
क्लॉउकीट कॉन्सेप्ट्स
कोर डेटा से जूझ रहे डेवलपर्स अक्सर फ्रेमवर्क के बिल्डिंग ब्लॉक्स से अनफामिलिअर होते हैं। यदि आप कोर डेटा स्टैक के बारे में जानने और समझने के लिए समय नहीं लेते हैं, तो आप अनिवार्य रूप से समस्याओं में भाग लेंगे। क्लॉउकीट के लिए भी यही सच है।
इससे पहले कि हम एक सैंपल एप्लीकेशन पर काम करना शुरू करें, जो क्लॉउकीट का उपयोग करता है, मैं आपके कुछ मिनट खर्च करना चाहता हूं, जिससे आप क्लॉउकीट फ्रेमवर्क और इंफ्रास्ट्रक्चर की कई प्रमुख अवधारणाओं से परिचित हो सकते हैं। कंटेनर, डेटाबेस और सैंडबॉक्सिंग के साथ शुरू करते हैं।
प्राइवेसी और कन्टेनमेंट
Apple यह स्पष्ट करता है कि प्राइवेसी क्लॉउकीट का एक महत्वपूर्ण पहलू है। यह जानने के लिए पहली बात यह है कि प्रत्येक एप्लिकेशन का आईक्लाउड में अपना कंटेनर है। यह कांसेप्ट बहुत हद तक सवैल्यू है कि कैसे iOS ऍप्लिकेशन्स में प्रत्येक का अपना सैंडबॉक्स है। हालाँकि, अन्य ऍप्लिकेशन्स के साथ एक कंटेनर साझा करना संभव है, जब तक कि वे ऍप्लिकेशन्स एक ही डेवलपर खाते अकाउंट से संबद्ध न हों। जैसा कि आप कल्पना कर सकते हैं, यह डेवलपर्स के लिए कई दिलचस्प संभावनाएं खोलता है।
क्लॉउकीट कंटेनर में कई डेटाबेस होते हैं। प्रत्येक कंटेनर में एक पब्लिक डेटाबेस होता है जिसका उपयोग डेटा को स्टोर्ड करने के लिए किया जा सकता है जो आपके एप्लिकेशन के प्रत्येक यूजर के लिए एक्सेसिबल है। प्राइवेट डेटाबेस के अलावा, एक कंटेनर में आपके एप्लिकेशन के प्रत्येक यूजर के लिए एक प्राइवेट डेटाबेस भी होता है। यूजर के प्राइवेट डेटाबेस का उपयोग उन डेटा को स्टोर्ड करने के लिए किया जाता है जो उस विशेष यूजर के लिए विशिष्ट है। डेटा सेग्रीगेशन और एनकैप्सुलेशन क्लॉउकीट और आईक्लाउड इंफ्रास्ट्रक्चर का एक प्रमुख घटक(कॉम्पोनेन्ट) है।
भले ही किसी एप्लिकेशन के कंटेनर में कई डेटाबेस हो सकते हैं, एक डेवलपर के दृष्टिकोण से एक कंटेनर में केवल दो डेटाबेस होते हैं: पब्लिक डेटाबेस और यूजर का प्राइवेट डेटाबेस जो वर्तमान में उनके आईक्लाउड खाते में साइन इन है। 2017 तक, ऐप्पल ने एक तीसरा डेटाबेस, साझा डेटाबेस पेश किया, जो एप्लिकेशन को रिकॉर्ड के एक सबसेट को साझा करने की क्षमता प्रदान करता है जो किसी अन्य यूजर के निजी डेटाबेस पर साझा किया जाता है, उन्हें उन उजागर रिकॉर्ड में योगदान करने के लिए आमंत्रित करता है।
मैं थोड़ी देर बाद आईक्लाउड एकाउंट्स के बारे में अधिक बात करूंगा।
रिकॉर्ड और रिकॉर्ड क्षेत्र
किसी एप्लिकेशन के कंटेनर स्टोर का डेटाबेस रिकॉर्ड करता है। यह पारंपरिक डेटाबेस से बहुत अलग नहीं है। पहली नज़र में, क्लॉउकीट डेटाबेस में स्टोर्ड रिकॉर्ड key-वैल्यू जोड़े के डिक्शनरी के लिए रैपर से अधिक कुछ नहीं लगता है। वे ग्लोरिफ़िएड डिक्शनरीएस की तरह लग सकते हैं, लेकिन यह कहानी का केवल एक हिस्सा है।
प्रत्येक रिकॉर्ड में एक रिकॉर्ड टाइप और कई मेटाडेटा फ़ील्ड भी होते हैं। रिकॉर्ड बनाते समय रिकॉर्ड का मेटाडेटा ट्रैक रखता है कि किस यूजर ने रिकॉर्ड बनाया, जब रिकॉर्ड अंतिम बार अपडेट किया गया था, और जिसने रिकॉर्ड को अपडेट किया था।
CKRecord
क्लास इस तरह के रिकॉर्ड का रिप्रेजेंट करता है, और यह एक बहुत पॉवरफुल क्लास है। वे वैल्यू जिन्हें आप रिकॉर्ड में स्टोर्ड कर सकते हैं वे प्रॉपर्टी लिस्ट टाइप्स तक सीमित नहीं हैं। आप किसी रिकॉर्ड में डेटा के स्ट्रिंग्स, नंबर्स, डेट्स और ब्लब्स को स्टोर कर सकते हैं, लेकिन CKRecord
क्लास फर्स्ट-क्लास डेटा टाइप के रूप में स्थान डेटा, CLLocation
का भी इलाज करता है।
आप भी एक रिकॉर्ड में सपोर्ट डेटा टाइप के अर्रेस स्टोर कर सकते हैं। दूसरे शब्दों में, स्ट्रिंग्स या नंबर्स के अर्रेस CKRecord
उदाहरण के लिए कोई समस्या नहीं हैं।
रिकॉर्ड ज़ोन में रिकॉर्ड बनाए जाते हैं। एक रिकॉर्ड ज़ोन ग्रुप्स से रिलेटेड रिकॉर्ड। पब्लिक और प्राइवेट डेटाबेस में से प्रत्येक में एक डिफ़ॉल्ट रिकॉर्ड ज़ोन है, लेकिन यदि आवश्यक हो तो कस्टम रिकॉर्ड ज़ोन बनाना संभव है। रिकॉर्ड ज़ोन एक एडवांस्ड टॉपिक है जिस पर हम इस सीरीज में अधिक विस्तार से चर्चा नहीं करेंगे।
रिलेशनशिप्स
रिकॉर्ड के बीच रिलेशनशिप्स CKReference
क्लास के उदाहरणों द्वारा मैनेज्ड किए जाते हैं। आइए बेहतर उदाहरण के लिए देखें कि वास्तव में रिलेशनशिप्स कैसे काम करते हैं। इस सीरीज में हम जो एप्लिकेशन बनाएंगे, वह कई शॉपिंग लिस्ट्स को मैनेज करेगा। प्रत्येक लिस्ट में जीरो या अधिक आइटम हो सकते हैं। इसका मतलब यह है कि प्रत्येक आइटम को उस लिस्ट का रिफरेन्स होना चाहिए जो वह है।



यह समझना महत्वपूर्ण है कि आइटम लिस्ट का रिफरेन्स रखता है। हालांकि किसी लिस्ट के आइटम के लिए CKReference
इंस्टेंस की एक लिस्ट बनाना संभव है, यह आइटम के साथ फॉरेन key रखने के लिए अधिक सुविधाजनक है और रेकमेंडेड है - लिस्ट नहीं। यह भी है कि एप्पल की रेकमेन्डस क्या है।
जिस तरह से क्लॉउकीट रिलेशनशिप्स को मैनेज करता है वह काफी बेसिक है, लेकिन यह पैरेंट का रिकॉर्ड डिलीट होने पर चिल्ड्रन रिकॉर्ड को ऑटोमेटिकली हटाने का ऑप्शन प्रदान करता है। हम इस सीरीज में कुछ समय बाद रिलेशनशिप्स पर करीब से नज़र डालेंगे।
एसेट्स
मैं CKAsset
क्लास का भी उल्लेख(मेंशन) करना चाहूंगा। हालांकि रिकॉर्ड में डेटा के ब्लॉब्स को स्टोर्ड करना संभव है, unstructured डेटा (जैसे कि इमेजेज, ऑडियो और वीडियो) को CKAsset
इंस्टेंस के रूप में स्टोर्ड किया जाना चाहिए। एक CKAsset
उदाहरण हमेशा एक रिकॉर्ड के साथ जुड़ा हुआ है, और यह डिस्क पर एक फ़ाइल से मेल खाती है। हम इस सीरीज में CKAsset
क्लास के साथ काम नहीं करेंगे।
ऑथेंटिकेशन
मुझे यकीन है कि आप सहमत हैं कि क्लॉउकीट काफी आकर्षक लग रहा है। हालाँकि, एक महत्वपूर्ण विवरण है, जिसकी हमने अभी तक चर्चा नहीं की है: ऑथेंटिकेशन। यूजर अपने आईक्लाउड एकाउंट्स के माध्यम से खुद को प्रमाणित करते हैं। जिन यूज़र्स ने आईक्लाउड एकाउंट्स में साइन नहीं किया है, वे आईक्लाउड पर डेटा लिखने में अनेबल हैं।
हालांकि यह किसी भी आईक्लाउड API के लिए सही है, लेकिन ध्यान रखें कि उस स्थिति में केवल क्लाउडकिट पर भरोसा करने वाले एप्लिकेशन बहुत कार्यात्मक नहीं होंगे। डेवलपर द्वारा अनुमति दिए जाने पर, सभी यूजर पब्लिक डेटाबेस में डेटा तक पहुंच सकते हैं।
डेटा पढ़ना
जो यूजर अपने आईक्लाउड एकाउंट्स में साइन इन नहीं हैं, वे अभी भी पब्लिक डेटाबेस से डेटा पढ़ सकते हैं। यह बिना कहे चला जाता है कि प्राइवेट डेटाबेस एक्सेसिबल नहीं है क्योंकि आईक्लाउड को यह पता नहीं है कि कौन एप्लीकेशन का उपयोग कर रहा है।
पढ़ना और लिखना
जब साइन इन किया जाता है, तो यूजर पब्लिक और उनके प्राइवेट डेटाबेस को पढ़ और लिख सकते हैं। मैंने पहले ही उल्लेख किया है कि Apple प्राइवेसी को बहुत गंभीरता से लेता है। नतीजतन, प्राइवेट डेटाबेस में स्टोर्ड रिकॉर्ड केवल यूजर द्वारा सुलभ हैं। यहां तक कि आप, डेवलपर, उन डेटा को नहीं देख सकते जो यूज़र्स ने अपने प्राइवेट डेटाबेस में स्टोर्ड किए हैं। यह आपके एप्लिकेशन के बैक एंड को मैनेज करने वाले Apple का डाउनसाइड है, लेकिन यह यूजर के लिए निश्चित जीत है।
शॉपिंग की लिस्ट
हम जो एप्लिकेशन बनाने जा रहे हैं, वह आपकी शॉपिंग लिस्ट्स का मैनेज करेगा। प्रत्येक शॉपिंग लिस्ट में एक नाम और जीरो या अधिक आइटम होंगे। शॉपिंग लिस्ट एप्लिकेशन के निर्माण के बाद, आपको अपनी खुद की एक प्रोजेक्ट में क्लॉउकीट फ्रेमवर्क का उपयोग करके बहुत कम्फर्टेबले महसूस करना चाहिए।
आवश्यक शर्तें
इस ट्यूटोरियल के लिए, मैं Xcode 9 और Swift 4 का उपयोग करूंगा। यदि आप Xcode के पुराने वर्जन का उपयोग कर रहे हैं, तो ध्यान रखें कि आप Swift प्रोग्रामिंग भाषा के किसी भिन्न वर्जन का उपयोग कर रहे हैं। इसका मतलब है कि आपको कंपाइलर को संतुष्ट करने के लिए प्रोजेक्ट के सोर्स कोड को अपडेट करना होगा। परिवर्तन ज्यादातर मामूली हैं, लेकिन इसके बारे में जागरूक होना महत्वपूर्ण है।
क्योंकि क्लॉउकीट एक एडवांस्ड टॉपिक है, इसलिए मैं यह मानकर जा रहा हूं कि आप Xcode और Swift प्रोग्रामिंग भाषा दोनों से परिचित हैं। यदि आप iOS के डेवलपमेंट में नए हैं, तो मैं पहले एक इंट्रोडक्टरी ट्यूटोरियल पढ़ने या स्विफ्ट डेवलपमेंट पर हमारे कोर्सेज में से एक लेने की सलाह देता हूं:
- स्विफ्टस्विफ्ट के साथ iOS ऐप बनाएंMarkus Mühlberger
- डिजाइन पैटर्न्सस्विफ्ट डिज़ाइन पैटर्नDerek Jensen
यदि आप iOS के डेवलपमेंट या स्विफ्ट भाषा के लिए नए हैं, तो उन्हें अवश्य देखें।
प्रोजेक्ट सेटअप
कुछ कोड लिखना शुरू करने का समय आ गया है। Xcode लॉन्च करें और सिंगल व्यू एप्लिकेशन टेम्पलेट के आधार पर एक नया प्रोजेक्ट बनाएं।



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



आईक्लाउड को इनेबलिंग करना
अगला स्टेप आईक्लाउड और क्लॉउकीट को इनेबलिंग कर रहा है। बाईं ओर प्रोजेक्ट नेविगेटर में प्रोजेक्ट को सेलेक्ट करें और टारगेट की लिस्ट से अपने एप्लीकेशन के लिए टारगेट को सेलेक्ट करें। General टैब खोलें और टीम को सही टीम पर सेट करें। अगले स्टेप में किसी भी समस्या से बचने के लिए, वेरीफाई करें कि आपके डेवलपर अकाउंट में App ID बनाने के लिए आवश्यक पेर्मिशन्स हैं।



इसके बाद, टॉप पर Capabilities टैब खोलें और आईक्लाउड के लिए स्विच को चालू करें। Xcode को आपकी ओर से App ID बनाने के लिए एक क्षण की आवश्यकता होगी। यह App ID में आवश्यक एंटाइटेलमेंट भी जोड़ेगा। यदि यह काम नहीं करता है, तो सुनिश्चित करें कि टीम सही ढंग से सेट है और आपके पास ऐप ID बनाने के लिए आवश्यक पेर्मिशन्स हैं।



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



आपने देखा होगा कि Xcode ने ऑटोमेटिकली ही अपने टारगेट को क्लॉउकीट फ्रेमवर्क से जोड़ लिया है। इसका मतलब है कि आप अपने एप्लिकेशन में क्लॉउकीट का उपयोग शुरू करने के लिए तैयार हैं।
इसमें चल कर के देखते है
इस सीरीज के अगले ट्यूटोरियल में, हम शॉपिंग लिस्ट्स को जोड़ने, एडिट करने और डिलीट की एबिलिटी जोड़ देंगे। हालाँकि, इस ट्यूटोरियल को समाप्त करने के लिए, मैं आपको अपने पैरों को गीला करके दिखाना चाहता हूँ कि क्लॉउकीट API के साथ कैसे बातचीत करें। हम जो करने जा रहे हैं वह चालाकी(फेच) से साइन-इन किए गए यूजर का रिकॉर्ड है।
ViewController.swift खोलें और क्लॉउकीट फ्रेमवर्क को इम्पोर्ट करने के लिए टॉप पर एक इम्पोर्ट स्टेटमेंट जोड़ें।
import UIKit import CloudKit
यूजर रिकॉर्ड लाने के लिए, हमें पहले रिकॉर्ड के आइडेंटिफायर को लाने की आवश्यकता है। आइए देखें कि यह कैसे काम करता है। मैंने यूजर के रिकॉर्ड आइडेंटिफायर को लाने के लिए तर्क रखने के लिए एक हेल्पर मेथड, fetchUserRecordID
बनाया है। हम इस मेथड को व्यू कंट्रोलर की इन्वोके मेथड viewDidLoad
में लागू करते हैं।
override func viewDidLoad() { super.viewDidLoad() // Fetch User Record ID fetchUserRecordID() }
FetchUserRecordID
का इम्प्लीमेंटेशन viewDidLoad
की तुलना में थोड़ा अधिक दिलचस्प है। हम पहले CKContainer
क्लास पर defaultContainer
को लागू करके एप्लिकेशन के डिफॉल्ट कंटेनर का रिफरेन्स प्राप्त करते हैं। फिर हम defaultContainer.
पर fetchUserRecordIDWithCompletionHandler (_ :)
कहते हैं। यह मेथड एक क्लोज़र को अपने एकमात्र आर्गुमेंट के रूप में एक्सेप्टस करती है।
private func fetchUserRecordID() { // Fetch Default Container let defaultContainer = CKContainer.default() // Fetch User Record defaultContainer.fetchUserRecordID { (recordID, error) -> Void in if let responseError = error { print(responseError) } else if let userRecordID = recordID { DispatchQueue.main.sync { self.fetchUserRecord(recordID: userRecordID) } } } }
क्लोजर दो आर्ग्यूमेंट्स एक्सेप्टस करता है: एक ऑप्शनल CKRecordID
उदाहरण और एक ऑप्शनल NSError
उदाहरण। यदि error
nil
है, तो हम recordID
को सुरक्षित रूप से खोलते हैं।
यह जोर देना महत्वपूर्ण है कि क्लोज़र को बैकग्राउंड के थ्रेड पर बुलाया जाएगा। इसका मतलब है कि क्लॉउकीट द्वारा इन्वोकेड क्लोजर के भीतर से अपने एप्लिकेशन के यूजर इंटरफेस को अपडेट करते समय आपको सावधान रहने की जरूरत है। fetchUserRecordID
में, उदाहरण के लिए, मैं स्पष्ट रूप से fetchUserRecord(_ :)
को मुख्य थ्रेड को कॉल करता हूं।
fetchUserRecord(_ :)
में, हम क्लॉउकीट को बताकर यूजर रिकॉर्ड प्राप्त करते हैं जो हम में रुचि रखते हैं। ध्यान दें कि हम fetchRecordWithID(_:completionHandler:)
को privateDatabase
ऑब्जेक्ट , defaultContainer
ऑब्जेक्ट की प्रॉपर्टी कहते हैं।
मेथड एक CKRecordID
उदाहरण और एक पूरा हैंडलर एक्सेप्टस करता है। पिछला एक ऑप्शनल CKRecord
उदाहरण और एक NSError
उदाहरण एक्सेप्टस करता है। यदि हमने सफलतापूर्वक यूजर रिकॉर्ड प्राप्त किया है, तो हम इसे Xcode के कंसोल पर प्रिंट करते हैं।
private func fetchUserRecord(recordID: CKRecordID) { // Fetch Default Container let defaultContainer = CKContainer.default() // Fetch Private Database let privateDatabase = defaultContainer.privateCloudDatabase // Fetch User Record privateDatabase.fetch(withRecordID: recordID) { (record, error) -> Void in if let responseError = error { print(responseError) } else if let userRecord = record { print(userRecord) } } }
जब आप Xcode में ऐप चलाते हैं, तो आप कंसोल में कुछ इसी तरह देखेंगे:



यह आपको क्लॉउकीट फ्रेमवर्क का टेस्ट देना चाहिए था। इसका आधुनिक API इजी और उपयोग में आसान है। अगले ट्यूटोरियल में, हम क्लॉउकीट API की संभावनाओं की गहराई से जानेगे।
आप पूरा सैंपल प्रोजेक्ट क्लोन कर सकते हैं, GitHub (tag #introduction
) पर।
निष्कर्ष
अब आपको क्लॉउकीट फ्रेमवर्क की बेसिक्स बातों की उचित समझ होनी चाहिए। इस सीरीज के शेष भाग को शॉपिंग लिस्ट एप्लिकेशन के निर्माण पर केंद्रित किया जाएगा। अगले ट्यूटोरियल में, हम शॉपिंग लिस्ट्स को जोड़ने, एडिट करने और रिमूव की एबिलिटी को जोड़कर शुरू करेंगे।