2012-08-27 5 views
8

मेरे ऐप में, मुझे ऐप चलाने वाले विभिन्न डिवाइसों के बीच एक सेटिंग साझा करने की आवश्यकता है। मैं पहला डिवाइस चाहता हूं जो सेटिंग के मास्टर वैल्यू को सेट करने के लिए ऐप इंस्टॉल करता है, तो अन्य सभी उपकरणों को उस सेटिंग को प्राप्त करना चाहिए और इसे ओवरराइट नहीं करना चाहिए।मूल्य निर्धारित करने से पहले मौजूदा iCloud मानों की प्रतीक्षा करें?

  1. मैं कैसे सुनिश्चित कर सकता हूं कि मैं पहले जांच करता हूं कि मूल्य निर्धारित करने से पहले iCloud का मूल्य है या नहीं? तो मैं एक मौजूदा एक को ओवरराइट नहीं करता हूं।

  2. क्या मुझे NSUbiquitousKeyValueStoreInitialSyncChange ईवेंट भेजने के लिए इंतजार करना चाहिए, और फिर मैं एक अंतिम मौजूदा मान की जांच कर सकता हूं और अन्यथा इसे पहली बार सेट कर सकता हूं? यदि हां, तो क्या मैं NSUbiquitousKeyValueStoreInitialSyncChange ईवेंट प्राप्त करने पर भरोसा कर सकता हूं? यदि नहीं, तो यह पता चला है कि यह इस दृष्टिकोण के साथ iCloud मान सेट नहीं करता है।

  3. मैंने पहले NSUbiquitousKeyValueStoreInitialSyncChange पहली बार के लिए शुरू हो रहा है एक मूल्य सेट करने का प्रयास करते हैं, तो यह उन्हें छोड़ दिया जाएगा और उसके बाद NSUbiquitousKeyValueStoreInitialSyncChange दुकान में मौजूद डेटा से ट्रिगर किया जाएगा?

  4. मैंने सुना है कि स्टोर में कोई मूल्य नहीं होने पर NSUbiquitousKeyValueStoreInitialSyncChange ट्रिगर नहीं किया गया है जब यह पहली बार समन्वयित होता है?

मैं इस बारे में एप्पल प्रलेखन पढ़ लिया है और यहां स्टैक ओवरफ़्लो पर जवाब देखा है, लेकिन समझा नहीं है वास्तव में यह करने के लिए कैसे।

मुझे यकीन है कि मैं एक मौजूदा मूल्य पहली बार मैं लांच/स्थापित एप्लिकेशन के ऊपर लिख नहीं है कैसे कर सकते हैं?

उत्तर

8

आप के लिए निश्चित रूप से पता है के लिए आप प्रभावी रूप से कम से कम एक बार दूर की दुकान के साथ सिंक्रनाइज़ है और आप इसे पर भरोसा नहीं करना चाहिए (कल्पना नहीं iCloud है खाता सेट अप, या बिना कनेक्टिविटी या iCloud सर्वर डाउन कर रहे हैं कोई तरीका नहीं है , आदि .: आप नहीं चाहते हैं कि आपका उपयोगकर्ता यह सुनिश्चित करने के लिए प्रतीक्षा करे कि आप क्लाउड के साथ सिंक हो रहे हैं क्योंकि यह हमेशा के लिए ले सकता है या कभी भी नहीं हो सकता है)।

आपको क्या करना चाहिए:

  • जब आप शुरू करते हैं, दुकान की जांच अगर वहाँ एक मूल्य है देखने के लिए।
  • अगर वहाँ कोई मूल्य नहीं है, बस अपने खुद के मूल्य धक्का।
  • सर्वर के साथ प्रारंभिक समन्वयन अभी तक ऐसा नहीं हुआ तो और वहाँ है, वास्तव में, बादल में एक मूल्य है, इस NSUbiquitousKeyValueStore द्वारा एक संघर्ष विचार किया जाएगा। इस सटीक मामले (प्रारंभिक सिंक) में, स्वचालित नीति आपके स्थानीय मान को वापस लेना और क्लाउड में इसे पसंद करना है। तो आपके आवेदन NSUbiquitousKeyValueStoreInitialSyncChange कारण के साथ इसे वापस करें के NSUbiquitousKeyValueStoreDidChangeExternallyNotification द्वारा सूचित किया जाएगा।
  • अगर वहाँ वास्तव में बादल में कोई मूल्य नहीं, अपने स्थानीय मूल्य आगे बढ़ा दिया जाएगा और हर कोई खुश हो जाएगा।
संबंधित मुद्दे