कैसे में एक स्ट्रिंग को बचाने के लिए NSUserDefaults
?
कैसे में एक स्ट्रिंग को बचाने के लिए NSUserDefaults
?
जवाबों:
NSString *valueToSave = @"someValue";
[[NSUserDefaults standardUserDefaults] setObject:valueToSave forKey:@"preferenceName"];
[[NSUserDefaults standardUserDefaults] synchronize];
बाद में वापस पाने के लिए
NSString *savedValue = [[NSUserDefaults standardUserDefaults]
stringForKey:@"preferenceName"];
NSString *valueToSave = @"someValue";[[NSUserDefaults standardUserDefaults]setObject:valueToSave forKey:@"preferenceName"]; [[NSUserDefaults standardUserDefaults]synchronize
ज्यादा ठीक
-(void)saveToUserDefaults:(NSString*)myString
{
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
if (standardUserDefaults) {
[standardUserDefaults setObject:myString forKey:@"timestamps"];
[standardUserDefaults synchronize];
}
}
standardUserDefaults
ऑब्जेक्ट के लिए नील जांच करने की आवश्यकता नहीं है । ऑब्जेक्टिव-सी में संदेश भेजना पूरी तरह से ठीक है।
synchronize
विधि के बारे में बात करता है: "इस पद्धति का उपयोग केवल तभी करें जब आप स्वचालित सिंक्रनाइज़ेशन की प्रतीक्षा नहीं कर सकते हैं (उदाहरण के लिए, यदि आपका आवेदन बाहर निकलने वाला है)" - NSUserDefaults कक्षा संदर्भ
synchronize
। डॉक्टर कहते हैं: हाँ अगर डेटा को डिस्क पर सफलतापूर्वक सहेजा गया था, अन्यथा नहीं।
यहां स्विफ्ट के साथ ऐसा ही करने का तरीका बताया गया है;
var valueToSave = "someValue"
NSUserDefaults.standardUserDefaults().setObject(valueToSave, forKey: "preferenceName")
बाद में वापस पाने के लिए;
if let savedValue = NSUserDefaults.standardUserDefaults().stringForKey("preferenceName") {
// Do something with savedValue
}
स्विफ्ट 3.0 में
var valueToSave = "someValue"
UserDefaults.standard.set(valueToSave, forKey: "preferenceName")
if let savedValue = UserDefaults.standard.string(forKey: "preferenceName") {
}
कुछ इस तरह:
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
// saving an NSString
[prefs setObject:@"TextToSave" forKey:@"keyToLookupString"];
फिर पुनः प्राप्त करने के लिए:
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
// getting an NSString
NSString *myString = [prefs stringForKey:@"keyToLookupString"];
आपको वास्तव में Apple के NSUserDefaults क्लास संदर्भ की जांच करनी चाहिए और शायद यह ट्यूटोरियल: iPhone प्रोग्रामिंग ट्यूटोरियल - NSUserDefaults का उपयोग करके डेटा को सहेजना / पुनः प्राप्त करना।
इस कथन को न भूलें क्योंकि अन्यथा यह हमेशा काम नहीं कर सकता है:
[standardUserDefaults synchronize];
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
// saving an NSString
[prefs setObject:@"TextToSave" forKey:@"keyToLookupString"];
// saving an NSInteger
[prefs setInteger:42 forKey:@"integerKey"];
// saving a Double
[prefs setDouble:3.1415 forKey:@"doubleKey"];
// saving a Float
[prefs setFloat:1.2345678 forKey:@"floatKey"];
// This is suggested to synch prefs, but is not needed (I didn't put it in my tut)
[prefs synchronize];
पुनः प्राप्त करना
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
// getting an NSString
NSString *myString = [prefs stringForKey:@"keyToLookupString"];
// getting an NSInteger
NSInteger myInt = [prefs integerForKey:@"integerKey"];
// getting an Float
float myFloat = [prefs floatForKey:@"floatKey"];
[[NSUserDefaults standardUserDefaults] setValue:aString forKey:aKey]
-(void)saveToUserDefaults:(NSString*)string_to_store keys:(NSString *)key_for_the_String
{
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
if (standardUserDefaults) {
[standardUserDefaults setObject:string_to_store forKey:key_for_the_String];
[standardUserDefaults synchronize];
}
}
और इसे कॉल करें:
[self saveToUserDefaults:@"string_to_store" : @"key_for_the_string"];
स्ट्रिंग का उपयोग करके पुनः प्राप्त करें:
NSString * stored_string = [[NSUserDefaults standardUserDefaults] stringforkey:key_for_the_String]
FirstView
{
NSMutableArray *array; }
- (void)viewDidLoad {
[super viewDidLoad];
array = [[NSMutableArray alloc]init];
array = [[NSUserDefaults standardUserDefaults]objectForKey:@"userlist"];
NSLog(@"%lu",(unsigned long)array.count);
if (array>0)
{
for (int i=0; i<array.count; i++)
{
NSDictionary *dict1 = @{@"Username":[[array valueForKey:@"Username"] objectAtIndex:i],@"Mobilenumber":[[array valueForKey:@"Mobilenumber"] objectAtIndex:i],@"Firstname":[[array valueForKey:@"Firstname"] objectAtIndex:i],@"Lastname":[[array valueForKey:@"Lastname"] objectAtIndex:i],@"dob":[[array valueForKey:@"dob"] objectAtIndex:i],@"image":[[array valueForKey:@"image"] objectAtIndex:i]};
NSLog(@"%@",dict1);
NSArray *array1 = [[NSArray alloc]initWithObjects:dict1, nil];
[[NSUserDefaults standardUserDefaults] setObject:array1 forKey:@"UserList"];
}
}
}
ImagePicker
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
UIImage *chosenImage = info[UIImagePickerControllerEditedImage];
self.imaGe.image = chosenImage;
[picker dismissViewControllerAnimated:YES completion:NULL];
}
(आईबीए) सबमिट करेंबटन: (आईडी) प्रेषक {
NSMutableArray *array2 = [[NSMutableArray alloc]initWithArray:
[[NSUserDefaults standardUserDefaults]objectForKey:
@"userlist"]];
UIImage *ima = _imaGe.image;
NSData *imagedata = UIImageJPEGRepresentation(ima,100);
NSDictionary *dict = @{@"Username":_userTxt.text,@"Lastname":_lastTxt.text,@"Firstname":_firstTxt.text,@"Mobilenumber":_mobTxt.text,@"dob":_dobTxt.text,@"image":imagedata};
[array2 addObject:dict];
[[NSUserDefaults standardUserDefaults]setObject:array2
forKey:@"userlist"];
NSLog(@"%@",array2);
[self performSegueWithIdentifier:@"second" sender:self];
}
(आईबीएक्शन) selectImg: (आईडी) प्रेषक {
UIImagePickerController * picker = [[UIImagePickerController
आबंटित] init]; picker.delegate = self; picker.allowsEditing = YES; picker.sourceType =
UIImagePickerControllerSourceTypePhotoLibrary; [स्व presentViewController: पिकर एनिमेटेड: हाँ पूरा: NULL];
}
दूसरा दृश्य {NSMutableArray * गिरफ्तार; }
- (void)viewDidLoad {
[super viewDidLoad];
arr =[[NSMutableArray alloc]init];
arr = [[NSUserDefaults standardUserDefaults]objectForKey:@"userlist"]; }
#pragma mark- TableView DataSource
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1; }
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return arr.count; }
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *cellId = @"tablecell";
TableViewCell *cell =[tableView dequeueReusableCellWithIdentifier:cellId];
cell.userLbl.text =[[arr valueForKey:@"username"] objectAtIndex:indexPath.row];
cell.ageLbl.text =[[arr valueForKey:@"dob"] objectAtIndex:indexPath.row];
cell.profileImg.image =[UIImage imageNamed:[[arr valueForKey:@"image"] objectAtIndex:indexPath.row]];
return cell; }
में Swift5 और Xcode 10.2
//Save
UserDefaults.standard.set(true, forKey: "Key1") //Bool
UserDefaults.standard.set(1, forKey: "Key2") //Integer
UserDefaults.standard.set("This is my string", forKey: "Key3") //String
UserDefaults.standard.synchronize()
//Retrive
UserDefaults.standard.bool(forKey: "Key1")
UserDefaults.standard.integer(forKey: "Key2")
UserDefaults.standard.string(forKey: "Key3")
//Remove
UserDefaults.standard.removeObject(forKey: "Key3")
नोट: उपयोगकर्ता डेटा में टेक्स्ट डेटा (स्ट्रिंग, एरे, डिक्शनरी आदि) को सेव करें। UserDefaults में चित्र न सहेजें, यह अनुशंसित नहीं है (स्थानीय निर्देशिका में चित्र सहेजें)।
यहाँ स्विफ्ट के लिए मैं दो फंक्शन बनाता हूँ जो सेव करने के लिए कॉल करते हैं और पसंद के लिए वैल्यू फॉर रिट्राइव करते हैं
यह हो सकता है कि यह यू के लिए पूरी मदद करे
// बचत वस्तु के लिए
static func setObject(value:AnyObject ,key:String)
{
let pref = NSUserDefaults.standardUserDefaults()
pref.setObject(value, forKey: key)
pref.synchronize()
}
static func getObject(key:String) -> AnyObject
{
let pref = NSUserDefaults.standardUserDefaults()
return pref.objectForKey(key)!
}
स्विफ्ट 4.0.3 Xcode 9 में
============set Data in UserDefaults =========
UserDefaults.standard.set(userName, forKey: "userName")
UserDefaults.standard.synchronize()
============Get Data in UserDefaults =========
let userName = UserDefaults.standard.string(forKey: "userName")
print(userName ?? "Gera")
userNameTextField.text = ""+userName!