2011-04-08 18 views
37

सिंक्रनाइज़ करें मैं हर बार जब मैं प्लिस्ट को कुछ लिखता हूं तो [[NSUserDefaults standardUserDefaults] synchronize] का उपयोग कर रहा हूं। क्या वह ओवरकिल है? या क्या ऐसा करने में प्रतिकूल प्रभाव हैं?NSUserDefaults के लिए सर्वश्रेष्ठ अभ्यास

+0

मुझे पूरा यकीन है कि प्रोग्राम इसे "महसूस" करते समय ऑटो-फ्लश करता है। मुझे पता है कि यह थोड़ा अस्पष्ट है लेकिन यह काम करता है। आपको इसके बजाय NSUserDefaultsController को देखने पर विचार करना चाहिए। – alexy13

उत्तर

51

हां यह अधिक हो सकता है लेकिन एक साधारण एप्लिकेशन में आपको प्रदर्शन हिट दिखाई देगी? शायद नहीं, यदि आप मूल उपयोगकर्ता इंटरैक्शन के बाद ही बचत कर रहे हैं जैसे उपयोगकर्ता अपनी सेटिंग्स का चयन कर रहे हैं। अधिक बार सिंक्रनाइज़ करने के लिए लाभ यह है कि यदि आपका एप्लिकेशन क्रैश हो सकता है और आपके द्वारा सहेजी जा रही जानकारी महत्वपूर्ण है, अन्यथा आईओएस समय-समय पर आपके लिए इसे सहेज लेगा।

+1

अंतर्दृष्टि के लिए धन्यवाद। –

6

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

इसे बार बार प्रदर्शन के मुद्दों के कारण हो सकता कॉलिंग, लेकिन यह (पहले ही उल्लेख) की तरह एक overkill नहीं है अगर यह एक छोटा सा ऐप्लिकेशन हो या फिर मौजूदा धागा में किए गए परिवर्तनों के साथ तारीख तक होने के लिए यदि आप वास्तव में अपने plist की जरूरत है या आवेदन में कुछ अन्य धागे में किए गए परिवर्तन।

क्योंकि इस विधि स्वचालित रूप से आवधिक अंतरालों पर उत्पन्न होता है, इस विधि का उपयोग केवल यदि आप (उदाहरण के लिए यदि आपके आवेदन के बारे में बाहर निकलने के लिए है) स्वचालित तुल्यकालन के लिए इंतजार नहीं कर सकता या यदि आप करने के लिए उपयोगकर्ता चूक अद्यतन करना चाहते डिस्क पर क्या है, भले ही आपने कोई बदलाव नहीं किया है, भले ही आपने कोई बदलाव नहीं किया है, भले ही आपने

संभवतः एकमात्र प्रतिकूल प्रभाव जो आप देख सकते हैं वह प्रदर्शन में नगण्य कमी है।

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