मैं अपने NSUserDefault कुंजी के लिए कुछ प्रारंभिक मान सेट करना चाहता हूं ताकि ऐप के पहले भाग में कुछ उचित आरंभिक सेटिंग्स हों। मैंने सोचा कि मैं ऐप बंडल में ऐसा करने के लिए एक सरल तरीके से भाग गया .plist, लेकिन अब मुझे यह नहीं मिल रहा है। कोई विचार?NSUserDefault कुंजी के लिए प्रारंभिक मान कैसे सेट करें?
उत्तर
आप NSUserDefaults
की registerDefaults
विधि का उपयोग करना चाहिए से किया। अपनी बंडल में एक प्लेलिस्ट फ़ाइल तैयार करें जिसमें डिफ़ॉल्ट वरीयताएं हों और फिर डिफ़ॉल्ट को पंजीकृत करने के लिए उस प्लिस्ट का उपयोग करें।
NSString *defaultPrefsFile = [[NSBundle mainBundle] pathForResource:@"defaultPrefs" ofType:@"plist"];
NSDictionary *defaultPreferences = [NSDictionary dictionaryWithContentsOfFile:defaultPrefsFile];
[[NSUserDefaults standardUserDefaults] registerDefaults:defaultPreferences];
आपको अपने ऐप के प्रत्येक लॉन्च पर इस कोड को निष्पादित करना होगा। यह इन मानों को उपयोगकर्ता डिफ़ॉल्ट पदानुक्रम में एक अलग डोमेन में जोड़ देगा। जब भी आपके ऐप का उपयोगकर्ता डिफ़ॉल्ट किसी निश्चित कुंजी के लिए मान प्रदान नहीं करता है, तो NSUserDefaults
इस डोमेन पर वापस आ जाएगा और वहां से मूल्य पुनर्प्राप्त करेगा।
ऐसा लगता है कि यह एक अस्थिर स्मृति स्थान पर डिफ़ॉल्ट को पंजीकृत करता है। मैं नहीं चाहता कि यह अक्सर डिफ़ॉल्ट रूप से चूक जाए। यह ज्यादातर 1 लॉन्च के लिए है। क्या उपयोगकर्ता-सेट मान संरक्षित किए जाएंगे, या क्या वे कभी-कभी इस पर अधिक लिखे जाएंगे? – Suz
"अस्थिर स्मृति स्थान" से आपका क्या मतलब है? आपको अपने ऐप के प्रत्येक लॉन्च पर इस कोड को निष्पादित करना होगा। यह इन मानों को उपयोगकर्ता डिफ़ॉल्ट पदानुक्रम में एक अलग डोमेन में जोड़ देगा। जब भी आपके ऐप का उपयोगकर्ता डिफ़ॉल्ट किसी निश्चित कुंजी के लिए मान प्रदान नहीं करता है, तो 'NSUserDefaults' इस डोमेन पर वापस आ जाएगा और वहां से मान पुनर्प्राप्त करेगा। –
उपयोगकर्ता डिफ़ॉल्ट प्रोग्रामिंग गाइड NSRegistrationDomain को 'अस्थिर' स्थिति के रूप में 'अस्थिर' स्थिति के रूप में सूचीबद्ध करता है। इसलिए, उपयोगकर्ता डिफ़ॉल्ट सेटिंग्स स्वयं लगातार हैं और डिफ़ॉल्ट अस्थिर हैं, और प्रत्येक ऐप लॉन्च पर पुनः लोड किया जाना है। यह मेरे लिए अजीब लगता है कि 'पतन बैक' मान उपयोगकर्ता सेटिंग से कम लगातार है। – Suz
if ([[[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] allKeys] containsObject:@"initialValuesHaveBeenWritten"])
{
[[NSUserDefaults standardUserDefaults] setValue:obj1 forKey:key1];
[[NSUserDefaults standardUserDefaults] setValue:obj2 forKey:key2];
[[NSUserDefaults standardUserDefaults] setValue:obj1 forKey:@"initialValuesHaveBeenWritten"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
एनबी: जांची नहीं, स्मृति
यह वास्तव में इसका सही तरीका नहीं है। काम करता है, लेकिन यह ऐप्पल का सुझाव नहीं है। @ole द्वारा उत्तर में वर्णित अनुसार -registerDefaults का उपयोग करें, या उन्हें सीधे NSRegistrationDomain डोमेन में जोड़ें। –
मैं सहमत हूं। जब मैंने यह उत्तर लिखा था तो मुझे रजिस्टर डिफ़ॉल्ट के बारे में पता नहीं था, लेकिन अब मैं इसका उपयोग करता हूं। –
आप कई मूलभूत मूल्यों है, तो ola's answer का उपयोग करते हैं, अन्यथा इस में कुछ पैरामीटर के लिए
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if (![defaults boolForKey:USERDEFAULT_IS_INITIALIZED]) {
[defaults setBool:YES forKey:USERDEFAULT_IS_INITIALIZED];
// Set initial values
...
[defaults synchronize];
}
-(void) loadDef
{
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
_removeAd=[userDefaults boolForKey:SAVE_AD_STATUS];
NSString* strDefSetting=[userDefaults stringForKey:SAVE_STATUS_ADSETTING];
if(strDefSetting==nil
||[strDefSetting isEqualToString:@""]
)
{
[email protected]"0.5";
}
_floatAdmob=strDefSetting.floatValue;//0.5;
}
- 1. पायथन में शब्दकोश के लिए प्रारंभिक आकार कैसे सेट करें?
- 2. उपयोगकर्ता नियंत्रण संपत्ति के लिए प्रारंभिक मूल्य कैसे सेट करें?
- 3. Django: कैसे एक इनलाइन मॉडल formset में एक क्षेत्र के लिए प्रारंभिक मान सेट करने के?
- 4. विदेशी कुंजी विशेषता के लिए डिफ़ॉल्ट मान सेट करना
- 5. आईओएस: NSUserDefault
- 6. कक्षा आधारित जेनेरिक विचारों में मॉडलफॉर्म के लिए प्रारंभिक मान सेट करें
- 7. रेल में प्राथमिक कुंजी के लिए प्रारंभिक मान सेट करना (यानी पहली ऑब्जेक्ट की आईडी 1 के बजाय 1000 है)
- 8. तत्व का प्रारंभिक मान
- 9. ब्राउज़र कार्रवाई पॉपअप के प्रारंभिक आयाम कैसे सेट करें?
- 10. आइटम सूची के लिए डिफ़ॉल्ट मान कैसे सेट करें?
- 11. मेरे सापेक्ष लेआउट के लिए अल्फा मान कैसे सेट करें?
- 12. एक विदेशी कुंजी कॉलम में शून्य मान सेट करें?
- 13. नेस्टेड dict मान सेट करें और इंटरमीडिएट कुंजी बनाएं
- 14. आईओएस 4 पर एक अद्यतन NSUserDefault कैसे प्राप्त करें?
- 15. टेक्स्टव्यू पृष्ठभूमि रंग को प्रारंभिक मान
- 16. सीरियलज़ेबल डिक्शनरी, कुंजी नाम कैसे सेट करें?
- 17. डाटाबेस ड्रॉप डाउन सूची - प्रारंभिक मान
- 18. स्कैला TreeMap से कुंजी कैसे सेट करें और प्राप्त करें?
- 19. सेट करें पर्यावरण परिवर्तनीय मान
- 20. MongoDB में प्राथमिक कुंजी कैसे सेट करें?
- 21. Django व्यवस्थापक मॉडल के लिए प्रारंभिक डेटा कैसे सेट करें उदाहरण उदाहरण जोड़ें?
- 22. एईएस प्रारंभिक संवाद कैसे करें हाइब्रिड क्रिप्टोसिस्टम
- 23. Inno सेटअप स्क्रिप्टिंग (पास्कल) में, कैसे आप एक वैश्विक चर के प्रारंभिक मान सेट करते हैं?
- 24. ग्रिडस्प्लिटर 'फलक' की प्रारंभिक ऊंचाई कैसे सेट करें?
- 25. क्यूटी: मुख्य विंडो की प्रारंभिक स्थिति कैसे सेट करें?
- 26. Emacs में PHP के लिए प्रारंभिक इंडेंट स्तर सेट करना?
- 27. कुंजी-मान एक एनएसएमयूटेबलसेट
- 28. बाध्यकारी मान सीधे सेट करें
- 29. चेक बटन के रूप में रेडियो बटन के लिए प्रारंभिक मान असाइन करें
- 30. किसी संपत्ति के लिए डिफ़ॉल्ट मान सेट करें
चेक यह अच्छा है: http://jayprakashdubey.blogspot.in/2014/07/nsuserdefault -usage.html –