NSUserDefaults में NSDate को संग्रहीत करने के दो तरीके हैं जो मैंने पूरे किए हैं।
विकल्प 1 - setObject: forKey:
// Set
NSDate *myDate = [NSDate date];
[[NSUserDefaults standardUserDefaults] setObject:myDate forKey:@"myDateKey"];
// Get
NSDate *myDate = (NSDate *)[[NSUserDefaults standardUserDefaults] objectForKey:@"myDateKey"];
विकल्प 2 - timeIntervalSince1970
// Set
NSDate *myDate = [NSDate date];
NSTimeInterval myDateTimeInterval = [myDate timeIntervalSince1970];
[[NSUserDefaults standardUserDefaults] setFloat:myDateTimeInterval forKey:@"myDateKey"];
// Get
NSTimeInterval myDateTimeInterval = [[NSUserDefaults standardUserDefaults] floatForKey:@"myDateKey"];
NSDate *myDate = [NSDate dateWithTimeIntervalSince1970:myDateTimeInterval];
फायदा और नुकसान
विकल्प 1
यह कॉम्पैक्ट और तार्किक लगता है। हालाँकि, मुझे डेट फॉर्मेट बग्स के कारण यह गलत हो रहा है ।
विकल्प 2
यह अनाड़ी लगता है। मैं इसकी सटीकता के बारे में भी अनिश्चित हूँ - एक परीक्षण में मैंने किया था, जब मैंने तारीख को वापस प्राप्त कर लिया था, यह 48 सेकंड से बाहर था, इसके बावजूद कि ऐप्पल डॉक्स ने कहा कि NSTimeInterval में "सबसेकंड सटीकता" है।
आवश्यकताएँ
मैं जो भी विधि चुनता हूं, वह होनी चाहिए:
एक सेकंड के भीतर सटीक।
पठनीय और विश्वसनीय।
मेरा प्रश्न
क्या विकल्प 2 के साथ अशुद्धि है क्योंकि मैं कुछ गलत कर रहा हूं?
आप इन दो विकल्पों में से किसका उपयोग करेंगे?
क्या कोई और विकल्प है जिसके बारे में मुझे जानकारी नहीं है?
धन्यवाद!