2010-07-17 10 views
5

मैं किसी पाठ फ़ील्ड है,सहेजें प्रयोक्ता नाम और दर्रा उद्देश्य सी iPhone

संख्या और पासवर्ड

मैं कैसे इन सेटिंग्स को बचाने के लिए और फिर उन्हें पढ़ने के लिए कोई सुराग नहीं है के रूप में एप्लिकेशन अगर वे निर्धारित किया गया है की जाँच करने के लिए शुरू होता है या नहीं।

धन्यवाद

मेसन

उत्तर

5

बचाने के लिए:

[[NSUserDefaults standardUserDefaults] setValue:_email forKey:@"email"]; 
[[NSUserDefaults standardUserDefaults] setValue:_password forKey:@"password"]; 
[[NSUserDefaults standardUserDefaults] synchronize]; 

पढ़ें करने के लिए:

_email = [[NSUserDefaults standardUserDefaults] stringForKey:@"email"]; 
_password = [[NSUserDefaults standardUserDefaults] stringForKey:@"password"]; 

आपके मामले में:

[[NSUserDefaults standardUserDefaults] setValue:Number.text forKey:@"Number"]; 

और:

NSString * number = [[NSUserDefaults standardUserDefaults] stringForKey:@"Number"];

"कुंजी" आमतौर पर हार्ड-कोडेड और (एक शब्दकोश की तरह ठेठ नाम/मान युग्म) भंडारण में बातों के लिए एक "चर नाम" की तरह काम करता है।

यह जांचने के लिए कि क्या मूल्य निर्धारित किया गया है या नहीं; के बाद आप इसे पढ़ें:

if (number) ...
+1

thats एक IBOutlet मैं इस का प्रयोग करेंगे:: [[NSUserDefaults standardUserDefaults] setValue: forKey संख्याएँ उदाहरण के लिए, यहाँ यह काफी आसान बना देता है कि Github पर कुछ बहुत अच्छा कोड है: Number.text]; [[NSUserDefaults standardUserDefaults] setValue: _password forKey: password.text]; [[NSUserDefaults standardUserDefaults] सिंक्रनाइज़ करें]; – user393273

+0

आमतौर पर "कुंजी" हार्ड-कोडेड होता है ... यह आपके "परिवर्तनीय नाम" की तरह सॉर्टा संग्रहीत किया जाता है ... इस तरह ... [[NSUserDefaults standardUserDefaults] setValue: Number.text forKey: @ "संख्या"]; क्या यह समझ में आता है? – Steve

+0

यह काम करेगा, लेकिन यह असुरक्षित है। आपको कीचेन में संवेदनशील जानकारी संग्रहित करनी चाहिए। –

13

संवेदनशील जानकारी,-चेन में संग्रहित किया जाना चाहिए डिवाइस पर एक क्रिप्टोग्राफी द्वारा सुरक्षित स्थान। यदि आप NSUserDefaults में उपयोगकर्ता नाम और/या पासवर्ड सहेजते हैं, तो आप उन्हें सादे टेक्स्ट के रूप में सहेज रहे हैं, जो स्वाभाविक रूप से असुरक्षित है।

आईफोन पर कीचेन का उपयोग करने के तरीके के इंटरनेट पर बहुत से उदाहरण हैं, आपके कोड में उपयोग करने के लिए सरल रैपर शामिल हैं।

http://github.com/ldandersen/scifihifi-iphone/tree/master/security

तो संख्या नामित पाठ फ़ील्ड के लिए
+1

मेरा से बेहतर जवाब। जानकारी के लिए धन्यवाद। बेशक, किसी भी डेवलपर को यह निर्धारित करना चाहिए कि अपने आवेदन के उद्देश्यों के लिए कितनी सुरक्षा की आवश्यकता है, और कीचेन (सिम्युलेटर समर्थन, सेटिंग ऐप सपोर्ट, अतिरिक्त जटिलता और देव समय) का उपयोग करने की कमी को समझें। – Steve

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