ठीक है दोस्तों, मुझे लगता है कि मुझे यह काम मिल गया है।
अद्यतन शुरू में यह मेरे लिए काम किया है, लेकिन मैं कुछ बहुत ही अजीब प्रभाव और तथ्य यह है हर जगह पर होना कंटेनर नष्ट कर दिया जाता है, तो आप iCloud से लॉग आउट है कि मुझे वैकल्पिक समाधान के बारे में सोचना कर दिया था। अब मैं एन्सम्बल लाइब्रेरी का उपयोग करता हूं और ज्यादातर इसके साथ बहुत संतुष्ट हूं। अंत अद्यतन
मैं बस अपना खुद का परीक्षण ऐप को मैं 2 साल पहले लिखा था, कि कोई CoreData है और न ही iCloud था pimped और यह अच्छा काम करने के लिए लगता है। यह मेरे आईफोन और आईफोन सिम्युलेटर में डेटाबेस को सिंक करता है। मुझे एक छोटी सी चीज़ जो मुझे नट्स चलाती है वह है कि मुझे अभी भी https://developer.icloud.com पर कुछ भी दिखाई नहीं दे रहा है ..
अब मैं अपने वितरित ऐप के लिए ऐसा करने जा रहा हूं। यहाँ मैं वास्तव में क्या किया है:
- का और सामान के बारे में अच्छी बात यह है कि आप लगभग डेवलपर पोर्टल पर कुछ भी नहीं है (जैसे बना सकते हैं और प्रोफ़ाइल प्रावधान डाउनलोड, यहां तक कि बनाने एप्लिकेशन आईडी की जरूरत नहीं है कि है आवश्यक नहीं है) - एक्सकोड 6.3.2 यह सब आपके लिए करता है; यदि आप निश्चित रूप से आदेश जानते हैं। तो सबसे पहले, अपने लक्ष्य की सेटिंग्स पर जाएं -> क्षमताओं, और iCloud सक्षम करें। एक्सकोड एंटरटाइमेंट्स फ़ाइल जोड़ने, डेवलपर पोर्टल पर ऐप आईडी बनाने और आईक्लाउड कंटेनर बनाने का काम करता है। "कुंजी-मूल्य संग्रहण" अनचेक करें और "iCloud दस्तावेज़" की जांच करें।
- मैं के रूप में निम्नलिखित आप MagicalRecord और आप सेटअप अपने कोर डाटा ढेर का उपयोग कर रहे मान:
[MagicalRecord setupAutoMigratingCoreDataStack];
इस मामले में MagicalRecord एक स्थानीय स्टोर बनाता है जिसका नाम आप [MagicalRecord defaultStoreName]
पर कॉल करके प्राप्त कर सकते हैं। आपको iCloud सेटअप कॉल में इसे एक को बताना होगा। तो कोड मैं अभी AppDelegate.m में है:
NSString *defaultStoreName = [MagicalRecord defaultStoreName];
[MagicalRecord setupCoreDataStackWithiCloudContainer:@"Container ID from Developer Portal (as on image)"
contentNameKey:@"DataStorage" // It seems like you can write whatever you want here
localStoreNamed:defaultStoreName // Unless not specifically named earlier
cloudStorePathComponent:@"stuff"]; // Seems like you can write whatever stuff you want.
इस विधि मेरे लिए काम किया। दूसरा, छोटा iCloud सेटअप कॉलिंग विधि (ContentNameKey के बिना) कोई अपवाद नहीं फेंक रहा था, लेकिन ठीक से काम नहीं किया। मुझे लगता है, आपको बस ContentNameKey बताना होगा।
यहां वह जगह है जहां आप डेवलपर पोर्टल पर कंटेनर आईडी प्राप्त करते हैं। मुझे पता है, यह एक बहुत ही विस्तृत निर्देशों की तरह लगता है, लेकिन मेरी इच्छा है कि यह मेरे लिए इतना स्पष्ट था कि उपरोक्त फ़ंक्शन में "iCloudContainer" स्ट्रिंग वास्तव में iCloudContainerID है और इसे डेवलपर पोर्टल से पुनर्प्राप्त किया जाना चाहिए।
डिवाइस सेटिंग पर
- जाओ -> iCloud ->iCloud ड्राइव और इसे सक्षम करें। अपने खाते के साथ iCloud में लॉग इन करें। काम करने के लिए पूरी चीज के लिए यह महत्वपूर्ण है।
अब कम से कम सिम्युलेटर पर अनुप्रयोग चलाने के लिए प्रयास करें। यदि आपके पास लॉग में "iCloud सक्षम नहीं है" संदेश नहीं मिला है, तो आप आधे रास्ते पर हैं।
रजिस्टर उद्देश्य यह है कि जिम्मेदार है सभी कोर डाटा कार्यों निम्न इवेंट पर NotificationCenter
को सुनने के लिए के लिए: NSPersistentStoreCoordinatorStoresWillChangeNotification
NSPersistentStoreCoordinatorStoresDidChangeNotification
NSPersistentStoreDidImportUbiquitousContentChangesNotification
इस तरह:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(storesWillChange:)
name:NSPersistentStoreCoordinatorStoresWillChangeNotification
object:nil];
और संभाल सही ढंग से परिवर्तन।
कठिन काम अभी तक किया जाना बाकी है और अब यह आपके प्रोजेक्ट पर निर्भर करता है और मैं आपको व्यक्तिगत रूप से कोई सलाह नहीं दे सकता।
मेरे लिए समस्या आई थी:
- कैसे दूरस्थ दुकान में बदलाव पर प्रतिक्रिया करने के लिए
- अलग डेटा मर्ज और डुप्लिकेट
- कैसे पूरा डेटा हानि से बचने के लिए अगर iCloud कंटेनर खाली है से बचने के लिए कैसे
लेकिन मुझे official Apple Manual to iCloud में मेरे प्रश्नों के सभी उत्तर मिलेंगे।
मुझे आपके लिए कुछ दिनों के सिरदर्द से बचने में खुशी हुई है! अगर यह समाधान आपकी परियोजना के लिए काम करता है तो कृपया एक टिप्पणी लिखें!
क्या आपने आईफोन सिम्युलेटर (सेटिंग्स मेनू में) पर अपने iCloud खाते में लॉगिन करने का प्रयास किया है? – ninjaproger
हां, ज़ाहिर है :) –
मेरे पास कोड का एक गुच्छा है जो मुझे कंसोल में बताता है कि iCloud सक्षम है या नहीं। तो अगर मैकिकल रिकार्ड फ्रेमवर्क के बाहर iCloud ठीक से सेट नहीं किया गया है तो मुझे त्रुटि संदेश मिलता है। अब मुझे कोई त्रुटि नहीं है, इसलिए सब कुछ काम करना चाहिए लेकिन यह –