मैं स्टॉपवॉच एप्लिकेशन बना रहा हूं और उपयोगकर्ता को आवेदन बंद करने से पहले प्रारंभ तिथि को स्टोर करने की आवश्यकता है और जब उपयोगकर्ता एप्लिकेशन को फिर से खोलता है तो इसे पुनर्प्राप्त करने की आवश्यकता होती है।NSUserDefaults से NSDate ऑब्जेक्ट को पुनर्प्राप्त और असाइन कैसे करें?
तो उदाहरण के लिए यदि उपयोगकर्ता स्टॉपवॉच शुरू करता है और फिर एप्लिकेशन बंद कर देता है और फिर कुछ समय बाद एप्लिकेशन को खोलता है तो ऐप को स्टॉपवॉच चलने पर चलने वाले समय को खोलने और बंद करने के बीच का समय जोड़ना चाहिए।
मैंने अपने व्यू कंट्रोलर में दो फ़ंक्शन बनाए हैं जो इसे संभालते हैं।
override func viewWillAppear(animated: Bool)
{
let startTimedefault:NSUserDefaults = NSUserDefaults.standardUserDefaults()
let startTimesaved:NSDate = startTimedefault.objectForKey("start time") // This line is buggy
if(launchBool == true)
{
timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: "fireStopWatch", userInfo: nil, repeats: true)
startTime = startTimesaved
}
if(launchBool == false)
{
timer.invalidate()
}
}
override func viewWillDisappear(animated: Bool)
{
NSUserDefaults.standardUserDefaults().setObject(launchBool, forKey: "Start/Stop")
NSUserDefaults.standardUserDefaults().setObject(startTime, forKey: "start time")
NSUserDefaults.standardUserDefaults().setObject(elapsedTime, forKey: "elapsed time")
}
मैं StackOverflow पर यहाँ पदों के एक जोड़े के माध्यम से चले गए हैं:
What's the optimum way of storing an NSDate in NSUserDefaults?
iOS - Not able to store NSDate into NSUserDefaults
या स्विफ्ट 1.2 'NSUserDefaults.standardUserDefaults()। ऑब्जेक्टफोरकी (" yourKey ") के रूप में! NSDate' –
यदि आपका 'यूके' पहले से ही उपयोगकर्ता को सहेजा नहीं गया है तो यह क्रैश हो जाएगा। 'के रूप में उपयोग करना चाहिए? NSDate' इसके बजाय – Inn0vative1
@ Inn0vative1 सुनिश्चित करें, अगर आप सुनिश्चित नहीं हैं कि कोई मान –