मेरे ऐप में, उपयोगकर्ता उपभोग्य सामग्रियों को खरीदते हैं, चलिए कोर डेटा में संग्रहीत सूटकेस कहते हैं। जब उपयोगकर्ता पहले ऐप इंस्टॉल करता है, तो मैं उन्हें शुरू करने के लिए एक फ्रीबी देता हूं। ऐप कम से कम एक सूटकेस सेट अप किए बिना काम नहीं कर सकता है।iCloud उपयोगकर्ताओं को इन-ऐप उपभोग्य "चोरी" करने के लिए संभव बनाता है
लेकिन यदि उपयोगकर्ता अपने आईफोन पर ऐप इंस्टॉल करता है और फिर उनके आईपैड को इंस्टॉल करता है और दोनों को सिंक करता है, तो अब उनके पास 2 सूटकेस हैं। और यदि वे किसी भी डिवाइस पर ऐप को अनइंस्टॉल करते हैं, तो उसे पुनः इंस्टॉल और सिंक करें, उन्होंने अभी एक अतिरिक्त प्राप्त किया है और वे अनिश्चित काल तक ऐसा कर सकते हैं।
मैं दो समाधान देख सकते हैं, लेकिन उनमें से कोई गलत होने पर:
iCloud से उपयोगकर्ता द्वारा पहली बार समन्वयित हो जाता है NSUbiquityKeyValueStore को मान जोड़ें। पहले लॉन्च पर इस मान को देखें। यदि यह शून्य है, तो फ्रीबी बनाएं, अगर ऐसा नहीं है, तो डेटा सिंक करें। लेकिन यह एक समस्या पैदा करता है। क्या होगा यदि उपयोगकर्ता iCloud को अक्षम करता है या पहले लॉन्च पर कोई इंटरनेट कनेक्शन नहीं है। ऐप फ्रीबी बना देगा, फिर जब iCloud उपलब्ध होगा, डुप्लिकेट सिंक करें, और वे इसे जितनी बार चाहें उतनी बार कर सकते हैं।
किसी भी तरह से प्रत्येक ऐप पर डिफ़ॉल्ट आइटम से मेल खाता है। मुझे ऑब्जेक्ट आईडी या टाइमस्टैम्प से मिलान करने का विचार था, लेकिन ये अलग-अलग होंगे और मुझे यकीन नहीं है कि इसे कैसे संभालना है।
क्या किसी को कुछ भी पता है जो मैं इसके बारे में कर सकता हूं?
संपादित करें:
एक पूर्व-पैकेज डेटाबेस प्लस migratePersistentStore का उपयोग करना: toURL: विकल्प: withType: त्रुटि: जाने का रास्ता हो रहा है। अगर यह मेरे लिए काम करता है तो कोड के साथ उत्तर पोस्ट करेगा।
हो सकता है कि अपने उदाहरण सिर्फ भ्रामक है, लेकिन क्यों न सिर्फ उन्हें एक मुक्त सूटकेस देना यदि उनके पास पहले से कभी नहीं? आप कहते हैं कि ऐप सूटकेस के बिना काम नहीं करेगा। क्या आपका मतलब है कि अगर यह पहले सूटकेस था और इसे खाया जाता है तो यह काम करेगा? –
@chrispix उदाहरण को इतना सार बनाने के लिए खेद है। असल में, आप सूटकेस "उपभोग" नहीं करते हैं, आप जितना चाहें उतना खरीदते हैं और आप उन्हें जमा करते हैं। यह एक "उपभोग योग्य" मॉडल है क्योंकि यह असीमित है, लेकिन आइटम वास्तव में खरीद पर "खपत" नहीं है, जो मुझे लगता है कि महत्वपूर्ण अंतर है। – ntesler
मुझे लगता है कि मैं देखता हूं। तो उपयोगकर्ता पुनः स्थापित करता है, इसमें कोई सूटकेस नहीं है, आप उन्हें एक देते हैं। फिर वे कुछ प्रमाण-पत्र दर्ज करते हैं जो उन्हें अपने पिछले सूटकेस को आपके सर्वर से खींचने की अनुमति देते हैं? –