दिलचस्प पोस्ट
टीसीपी क्लाइंट से सर्वर संचार एएसपी.एन.टी.नेट स्क्रिप्ट बंडलों और स्रोत मानचित्रों को पुन: संयोजन करना क्या किसी वेब प्रोजेक्ट की तरह ही विंडोज़ प्रोजेक्ट में Gecko या Webkit एम्बेड करना संभव है? सीएसएस का प्रयोग करके आप कैसे आसानी से क्षैतिज एक <div> केंद्र कर सकते हैं? एप्लिकेशन कॉन्फ़िगरेशन के अनुसार यूआरएल की अनुमति नहीं है परिपत्र आकृति में एक छवि दृश्य कैसे बनाएं? UITableview करने के लिए फिक्स्ड हैडर? मिश्रित प्रकारों के साथ WPF ट्रीव्यू डाटाबेसिंग पदानुक्रम डाटा क्रॉन्टाब पैट और यूजर जावास्क्रिप्ट – स्टॉप फॉर्म एजेक्स प्रतिक्रिया के आधार पर सबमिट करें जब तक टेक्स्टबॉक्स फोकस खो देता है, तब तक jQuery के टेक्स्टबॉक्स परिवर्तन ईवेंट में आग लगती है? डिवाइस (UI) अभिविन्यास प्रोग्राम को कैसे निर्धारित किया जाए? जावास्क्रिप्ट का उपयोग करते हुए एक सत्र कैसे बनाएं? कोई फ़ाइल अपलोड करते समय पूरा पता नहीं मिल सकता एक ऐसा प्रकार है जो किसी इंडेक्स में चाबी कॉलम के रूप में उपयोग के लिए अमान्य है

सिम्युलेटर पर ऐप अनइंस्टॉल करने के बाद NSUserDefaults साफ़ नहीं किए गए

यह असली NOOB ध्वनि हो सकता है! मैं यह जानना चाहता हूं कि उपयोगकर्ता दूसरी बार मेरा आवेदन में प्रवेश कर रहा है, इसलिए चलाने की संख्या रखने के लिए मैं NSUserDefaults का उपयोग कर रहा हूं। मैंने अपने rootViewController के viewDidLoad विधि में निम्न कोड को कार्यान्वित किया है:

  NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; NSLog(@"hello %ld", (long)[userDefaults integerForKey:@"runCount"]); if ([userDefaults integerForKey:@"runCount"] != 1) { //not the 2nd run [userDefaults setInteger:1 forKey:@"runCount"]; NSLog(@"not 2nd run"); } else { //second run or more NSLog(@"2nd run"); } [userDefaults synchronize]; 

सबकुछ ठीक काम करता है, लेकिन समस्या यह है कि जब मैं स्थापना रद्द (हटाना और पुन: स्थापित करें) अनुप्रयोग के अनुसार यहां और यहां पर डेटा को साफ किया जाना चाहिए, लेकिन ऐसा नहीं है और ऐप को फिर से इंस्टॉल करने के बाद भी पिछला डेटा अभी भी दिख रहा है मैं आईओएस सिम्युलेटर पर एक्सकोड 6-बीटा का प्रयोग कर अपना ऐप चला रहा हूं और आईओएस 8 पर एप्लिकेशन को लक्षित कर रहा हूं

Solutions Collecting From Web of "सिम्युलेटर पर ऐप अनइंस्टॉल करने के बाद NSUserDefaults साफ़ नहीं किए गए"

मुझे लगता है कि यह iOS8 बीटा सिम्युलेटर में एक बग के कारण है

अपेक्षित व्यवहार यह है कि जब ऐप नष्ट हो जाता है, तो उस ऐप के लिए NSUserDefaults को भी हटा दिया जाता है

  • हालांकि, जब आप सिम्युलेटर से कोई ऐप निकालते हैं तो NSUserDefaults हटाए नहीं जाते हैं
  • जब आप उन्हें iOS8 चलाने वाले किसी भौतिक डिवाइस से हटाते हैं तो उन्हें ठीक से हटा दिया जाता है

अब के लिए एक त्वरित और कष्टप्रद समाधान, आईओएस सिमुलेटर -> रीसेट सामग्री और सेटिंग्स पर क्लिक करना है

मैंने एक बग रिपोर्ट बीटीड प्रस्तुत की

रीसेट करें सामग्री और सेटिंग्स एक परमाणु विकल्प है, जब तक कि आईओएस 8 / एक्सकोड 6 जीएम सिम्युलेटर पर बग को संबोधित नहीं किया जाता है, तब तक आप दो अन्य विकल्पों पर विचार कर सकते हैं:

  1. आप मैन्युअल रूप से plist फ़ाइल को हटा सकते हैं जहां NSUserDefaults संग्रहीत हैं। यह वर्तमान में ~/Library/Developer/CoreSimulator/Devices/*some_device_id*/Library/Preferences/com.yourcompany.yourapp.plist स्थित है। सही सिम्युलेटर को ~/Library/Developer/CoreSimulator/Devices/*some_device_id*/Library/Preferences/com.yourcompany.yourapp.plist डायरेक्टरी नामों के साथ काम करने के लिए यह थोड़ा थकाऊ है। संपादित करें : 2014-10-28 20-34-52 सही पथ: ~/Library/Developer/CoreSimulator/Devices/*some_device_id*/data/Library/Preferences/com.yourcompany.yourapp.plist

  2. आप plistbuddy उदाहरण का उपयोग कर उस plist पर "सर्जरी" (शायद एक रन स्क्रिप्ट का निर्माण चरण का उपयोग करके) कर सकता है

/usr/libexec/plistbuddy -c "Set :BSDidMoveSqliteDb 0" path_to_plist

कोड को डिवाइस पर ठीक काम करना चाहिए। शायद सिम्युलेटर में कुछ कीड़े

सिमुलेटर के लिए सामग्री और सेटिंग्स रीसेट करने का प्रयास करें

यह एक बग है, और आप निम्न कोड के साथ NSUserDefaults को हटा सकते हैं

  NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier]; [[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain]; 

हालांकि यह अभी भी एक बग है एक अन्य विकल्प NSUserDefaults में विशिष्ट कुंजी (एस) को हटाने के लिए हो सकता है अधिकांश समय, परीक्षण / विकास करते समय, हम केवल कुछ कुंजी के बारे में परवाह करते हैं और NSUserDefaults में सब कुछ नहीं। यदि आप केवल कुछ कुंजी के बारे में ध्यान रखते हैं, तो मैं removeObjectForKey जोड़ने का प्रस्ताव देता removeObjectForKey :

 NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; // ADD THIS TO SIMULATE CLEAN/EMPTY DEFAULTS, COMMENT OUT AFTER INITIAL EXECUTION. // This will cause the TRUE case to be executed. [userDefaults removeObjectForKey:@"runCount"] NSLog(@"hello %ld", (long)[userDefaults integerForKey:@"runCount"]); if ([userDefaults integerForKey:@"runCount"] != 1) { //not the 2nd run [userDefaults setInteger:1 forKey:@"runCount"]; NSLog(@"not 2nd run"); } else { //second run or more NSLog(@"2nd run"); } [userDefaults synchronize]; 

removeObjectForKey जोड़ना, removeObjectForKey के पहले भाग का removeObjectForKey करता है, इसे बाद में टिप्पणी करने से बाद के सभी एप removeObjectForKey अनुकरण होगा।

उसी मुद्दे का सामना कर रहे किसी के लिए

यदि आपके पास एक ही समूह के अंतर्गत 1 से अधिक ऐप हैं और वे सभी ऐप समूहों (क्षमताओं के तहत) का उपयोग कर रहे हैं, तो उपयोगकर्ता को साफ़ करने के लिए आपको डिफ़ॉल्ट रूप से सभी ऐप्स को डिवाइस से निकालना होगा।

चूंकि उपयोगकर्ता डिफॉल्ट साझा किया जाता है, भले ही कोई ऐप डिवाइस पर हो, तो इसे हटाया नहीं जाएगा, क्योंकि वह ऐप उपयोगकर्ता के उपयोग से किया जाएगा।

मेरे मामले में मुझे * .plist को निम्न निर्देशिका में मिला:

[1] / उपयोगकर्ता / कुछ-उपयोगकर्ता नाम / लाइब्रेरी / डेवलपर / कोर सिमुलेटर / उपकरण / कुछ- DEVICE- आईडी / डेटा / लाइब्रेरी / प्राधान्य / एसपी। यूजर डीफॉल्ट्सटीस्ट.लिलिस्ट

समस्या: एक्सकोड 6 (आईओएस 8 सिम्युलेटर) में ऐप हटाना लेकिन फ़ाइल डिस्क पर रहता है जैसा ऊपर उल्लेखित है।

समाधान: पथ [1] से मैन्युअल रूप से स्थित फाइल को हटाने और NSUserDefaults चले गए हैं

इसलिए सिम्युलेटर को रीसेट करने का कष्टप्रद तरीका अब जरूरी नहीं है।