वर्तमान में, मैं एक ऐप विकसित कर रहा हूं कि कार्यक्षमता जेएसओएन डेटा पुनर्प्राप्त करने पर भारी निर्भर करती है। अधिकांश डेटा जो मैं मूल डेटा में सहेजने की योजना बना रहा हूं। हालांकि, मुझे यकीन नहीं है कि मुझे मूल डेटा में सभी उपयोगकर्ता संबंधित सामग्री (सेटिंग्स, पसंदीदा, ट्विटर, फेसबुक और ect।) को भी सहेजना है, या क्या मुझे NSUserDefaults का उपयोग करना चाहिए? पेशेवर और विपक्ष क्या हैं?क्या मुझे कुछ उपयोगकर्ता वरीयताओं को स्टोर करने या एनएसयूसर डीफॉल्ट में सहेजने के लिए कोर डेटा का उपयोग करना चाहिए?
उत्तर
आप एप्पल के स्वयं की मार्गदर्शिका का उल्लेख कर सकते: Implementing Application Preferences
आप किसी भी तरह से उपयोगकर्ता सेटिंग स्टोर कर सकते हैं के रूप में आप चाहते हैं: NSUserDefaults और कोर डेटा के बीच विकल्प सिर्फ एपीआई, जहां पूर्व वास्तव में संभाल करने के लिए डिजाइन किया गया था के बीच है उपयोगकर्ता वरीयताएं।
NSUserDefaults और "अंतर्निहित सेटिंग्स घटक" वास्तव में एक और समान हैं। सेटिंग्स ऐप का उपयोग करना अभी भी NSUserDefaults में वरीयताओं को संग्रहीत करेगा जो आप उस एपीआई के साथ अपने ऐप में एक्सेस करते हैं।
कारण आप अंतर्निहित सेटिंग्स ऐप का उपयोग नहीं करना चाहते हैं: यह उपयोगकर्ताओं के लिए उन सेटिंग्स को बदलने के लिए बोझिल है। यदि आपके पास ऐसी सेटिंग्स हैं जो उपयोगकर्ता अक्सर बदलना चाहते हैं, तो हो सकता है कि आप इसे अपने ऐप के अंदर करना चाहें (जैसे संगीत चालू/बंद करना, खिलाड़ी का नाम बदलना)। साथ ही, चूंकि आपके पास अपने ऐप पर पूर्ण नियंत्रण है, इसलिए आप ऐप्पल को सेटिंग्स.एप
कोर डेटा या एनएसयूसर डीफॉल्ट का उपयोग करने के लिए एक अधिक लचीला जीयूआई प्राप्त कर सकते हैं ... मैं कहूंगा कि NSUserDefaults के साथ जाना है इसे लागू करने के लिए बहुत आसान है और इसे करने के लिए डिज़ाइन किया गया था, जहां कोर डेटा को कार्यान्वित करने में बहुत मेहनत होगी।
2017+ में इस धागे को ढूंढने वाले किसी के लिए, ऊपर लिंक किया गया पृष्ठ अब मौजूद नहीं है । मुझे विश्वास है कि इस गाइड को अब [प्राथमिकताएं और सेटिंग्स प्रोग्रामिंग गाइड] कहा जाता है (https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/UserDefaults/Introduction/Introduction.html), अद्यतन संस्करण है। –
- 1. क्या मुझे एनएसयूसर डीफॉल्ट या डेटा स्टोर करने के लिए एक प्लिस्ट का उपयोग करना चाहिए?
- 2. एनएसयूसर डीफॉल्ट एक्सेस करना अक्सर
- 3. एनएसयूसर डीफॉल्ट के बजाय आवेदन डेटा कोर डेटा में कब होता है?
- 4. कोर डेटा में GUID स्टोर करने के लिए मुझे किस डेटा प्रकार का उपयोग करना चाहिए?
- 5. कीचेन और एनएसयूसर डीफॉल्ट के बीच अंतर?
- 6. क्या मुझे प्लिस्ट या कोर डेटा में सहेजना चाहिए?
- 7. क्या मुझे मोंगोडीबी से छवियों को स्टोर और पुनर्प्राप्त करने के लिए ग्रिडएफएस या बाइनरी डेटा का उपयोग करना चाहिए?
- 8. क्या मुझे System.out.println() या कुछ और उपयोग करना चाहिए?
- 9. क्या अन्य प्रोग्राम मेरे एनएसयूसर डीफॉल्ट सेटिंग्स पढ़ सकते हैं?
- 10. क्या एनएसयूसर डीफॉल्ट को सिंक्रनाइज़ करने के लिए यह खराब फॉर्म है - (शून्य) dealloc?
- 11. मुझे डेटाबेस में विंडोज उपयोगकर्ता आईडी कैसे स्टोर करना चाहिए?
- 12. निर्भरता इंजेक्शन: क्या मुझे कुछ वस्तुओं के लिए सब कुछ इंजेक्ट करना चाहिए या सेवा लोकेटर का उपयोग करना चाहिए?
- 13. रिकॉर्ड को संग्रहीत करने के लिए मुझे किस डेटाबेस का उपयोग करना चाहिए, और मुझे इसका उपयोग कैसे करना चाहिए?
- 14. मुझे अपने आईफोन ऐप के लिए कोर डेटा का उपयोग क्यों करना चाहिए?
- 15. छवि को सहेजने के लिए मुझे किस चर प्रकार का उपयोग करना चाहिए?
- 16. ड्यूल-कोर हाइपरथ्रेडिंग: क्या मुझे 4 धागे या 3 या 2 का उपयोग करना चाहिए?
- 17. साझा वरीयताओं का उपयोग कर सभी संग्रहीत डेटा स्टोर को रीसेट करने के लिए कैसे करें
- 18. क्या मुझे इनलाइन वर्कर (अधिकतम) कॉलम का उपयोग करना चाहिए या इसे एक अलग तालिका में स्टोर करना चाहिए?
- 19. क्या मुझे वैश्विक दायरे को संदर्भित करने के लिए स्वयं या विंडो का उपयोग करना चाहिए?
- 20. सर्वश्रेष्ठ कोर डेटा सहेजने की रणनीति (डिस्क पर डेटा को सहेजने के लिए)
- 21. कोर डेटा स्टोर
- 22. क्या मुझे संग्रहीत मार्कडाउन को HTML में परिवर्तित करना चाहिए, या क्या मुझे बस HTML स्टोर करना चाहिए?
- 23. क्या मुझे डेटा.फ्रेम या मैट्रिक्स का उपयोग करना चाहिए?
- 24. क्या मुझे एंड्रॉइड पर ImageCache में स्टोर करने के लिए बिटमैप या ड्रायबल का उपयोग करना चाहिए?
- 25. मुझे अपना एप्लिकेशन डेटा कहां स्टोर करना चाहिए?
- 26. मुझे संभावित कोर डेटा फ़ाइल भ्रष्टाचार या समस्याओं को लोड करने के लिए रक्षात्मक कोड कैसे करना चाहिए?
- 27. क्या मुझे टाइमस्टैम्प स्टोर करने के लिए MySQL में एक बड़ा INT या नियमित INT का उपयोग करना चाहिए?
- 28. शेयरपॉइंट: क्या मुझे सूचियों या डेटाबेस का उपयोग करना चाहिए?
- 29. oAuth के साथ साइन इन करें, मुझे उपयोगकर्ता की पहचान करने के लिए क्या स्टोर/उपयोग करना चाहिए?
- 30. आईओएस एनएसयूसर डीफॉल्ट एक ही कुंजी
इस उत्तर की एक अच्छी तुलना है: http://stackoverflow.com/questions/6173625/what-are-the-limitations-of-nsuserdefaults – dhirschl