2015-11-08 2 views
7

मैं अपने ऐप पर डेटा सहेजना चाहता हूं, मैंने डेटाकोर को सहेजने के लिए इस्तेमाल किया था, लेकिन यह किसी इकाई में डेटा को सहेजता है, और इस इकाई में एक विशेषता कई अलग-अलग मानों को बचा सकती है। मुझे एंड्रॉइड में वरीयता के रूप में प्रत्येक विशेषता के लिए डेटा केवल एक मान बचाया गया है। ऐसा कैसे किया जा सकता था? क्रिप्या मेरि सहायता करे। धन्यवाद।क्या आईओएस में स्विफ्ट का उपयोग करके डिवाइस में उपयोगकर्ता नाम और पासवर्ड सहेज सकता है जो एंड्रॉइड में वरीयता के समान है?

@IBAction func SaveAll(sender: AnyObject) { 
    let username:String = user_name.text! 
    let password:String = pass_word.text! 

    let appDel: AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate 

    let context:NSManagedObjectContext = appDel.managedObjectContext 

    let newStu = NSEntityDescription.insertNewObjectForEntityForName("Student", inManagedObjectContext: context) as NSManagedObject 
    newStu.setValue(username, forKey: "userName") 
    newStu.setValue(password, forKey: "passWord") 

    do { 
     try context.save() 
    } catch {} 

} 
+3

यदि आप पासवर्ड जैसी संवेदनशील जानकारी संग्रहीत करने जा रहे हैं, तो मैं दृढ़ता से आईओएस कीचेन एपीआई – 72A12F4E

+0

में आपके उत्तर के लिए धन्यवाद की सलाह देता हूं। मेरा मतलब है कि उपयोगकर्ता उपयोगकर्ता नाम या पासवर्ड दर्ज करने के बाद, यह उपयोगकर्ता नाम केवल उपयोगकर्ता के डिवाइस की स्मृति में मूल्य के रूप में सहेजा जाएगा। और जब उपयोगकर्ता फिर से ऐप खोलता है, तो उपयोगकर्ता नाम के सहेजे गए मान को कुछ करने के लिए फिर से उपयोग किया जा सकता है। क्या चाबी ऐसा कर सकती है? –

+1

निश्चित रूप से। यह लिंक बताता है कि चाबी कैसे काम करती है और इसका उपयोग कैसे करें। https://developer.apple.com/library/mac/documentation/Security/Conceptual/keychainServConcepts/iPhoneTasks/iPhoneTasks.html इसकी एक क्लाउडी सी एपीआई है, लेकिन यह काम करता है। वैकल्पिक रूप से, यहां उन एपीआई के आस-पास एक बहुत अधिक उपयोगी आवरण है जो मैं अपनी अधिकांश परियोजनाओं में उपयोग करता हूं। https://github.com/kishikawakatsumi/UICKeyChainStore – 72A12F4E

उत्तर

8

आप NSUserDefaults का उपयोग करना चाहिए यह करने के लिए: यह मेरा कोड है। यह आपको अपनी प्राथमिकताओं में असुरक्षित डेटा सहेजने देता है। साथ ही, पासवर्ड के बजाय आप किसी निश्चित अवधि के बाद लॉगिन करते समय सर्वर से प्राप्त किसी भी प्रकार की सत्र प्रबंधन कुंजी को स्टोर करना चाहेंगे। पासवर्ड को सीधे संग्रहित करने से यह थोड़ा अधिक सुरक्षित होगा।

NSUserDefaults के साथ, आप जो कुछ भी कुंजी-मूल्य स्टोर में चाहते हैं उसे सहेजते हैं जो फोन पर लगातार रहता है, और आपको जटिल कोरडाटा सामान के साथ गड़बड़ नहीं करना पड़ेगा।

बस इस

@IBAction func SaveAll(sender: AnyObject) { 
    let username:String = user_name.text! 
    let password:String = pass_word.text! 

    let defaults = UserDefaults.standard 

    defaults.setObject(username, forKey: "username") 
    defaults.setObject(password, forKey: "password") 
} 

तरह यह करना तो आप उन्हें आसानी से पुनः प्राप्त करने के लिए इसी defaults.stringForKey("username") और पासवर्ड कार्यों कॉल कर सकते हैं।

+0

मेरे संपादन की समीक्षा करने वाले लोगों में से एक ने नोट किया कि पुराने संस्करण को रखना बेहतर होगा, और इसके आगे का नया संस्करण जोड़ें। मैंने उस विकल्प को माना, लेकिन मैं आपके उत्तर की संरचना के साथ बहुत ज्यादा दखल नहीं देना चाहता था। शायद आप वजन करना चाहते हैं? – SwiftsNamesake

संबंधित मुद्दे

 संबंधित मुद्दे