How to save a string into the NSUserDefaults
?
问题:
回答1:
NSString *valueToSave = @\"someValue\";
[[NSUserDefaults standardUserDefaults] setObject:valueToSave forKey:@\"preferenceName\"];
[[NSUserDefaults standardUserDefaults] synchronize];
to get it back later
NSString *savedValue = [[NSUserDefaults standardUserDefaults]
stringForKey:@\"preferenceName\"];
回答2:
more precisely
-(void)saveToUserDefaults:(NSString*)myString
{
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
if (standardUserDefaults) {
[standardUserDefaults setObject:myString forKey:@\"timestamps\"];
[standardUserDefaults synchronize];
}
}
回答3:
Here\'s how to do the same with Swift;
var valueToSave = \"someValue\"
NSUserDefaults.standardUserDefaults().setObject(valueToSave, forKey: \"preferenceName\")
To get it back later;
if let savedValue = NSUserDefaults.standardUserDefaults().stringForKey(\"preferenceName\") {
// Do something with savedValue
}
In Swift 3.0
var valueToSave = \"someValue\"
UserDefaults.standard.set(valueToSave, forKey: \"preferenceName\")
if let savedValue = UserDefaults.standard.string(forKey: \"preferenceName\") {
}
回答4:
Something like this:
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
// saving an NSString
[prefs setObject:@\"TextToSave\" forKey:@\"keyToLookupString\"];
Then to retrieve:
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
// getting an NSString
NSString *myString = [prefs stringForKey:@\"keyToLookupString\"];
You should really check out Apple\'s NSUserDefaults Class Reference and also maybe this tutorial: iPhone Programming Tutorial – Saving/Retrieving Data Using NSUserDefaults
回答5:
Do not forget this statement because otherwise it may not always work:
[standardUserDefaults synchronize];
回答6:
[[NSUserDefaults standardUserDefaults] setValue:aString forKey:aKey]
回答7:
A good practice is also to use a constant for the key to avoid bugs where you do not store and read with the same key
NSString* const TIME_STAMPS_KEY = @\"TIME_STAMPS_KEY\";
回答8:
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];
Retrieving
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\"];
回答9:
-(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];
}
}
And call it by:
[self saveToUserDefaults:@\"string_to_store\" : @\"key_for_the_string\"];
Retrieve the string by using:
NSString * stored_string = [[NSUserDefaults standardUserDefaults] stringforkey:key_for_the_String]
回答10:
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];
}
(IBAction)submitBton:(id)sender {
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]; }
(IBAction)chooseImg:(id)sender {
UIImagePickerController *picker = [[UIImagePickerController
alloc] init]; picker.delegate = self; picker.allowsEditing = YES; picker.sourceType =
UIImagePickerControllerSourceTypePhotoLibrary; [self presentViewController:picker animated:YES completion:NULL];}
second View { NSMutableArray *arr; }
- (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; }
回答11:
In Swift 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!
回答12:
For saving use this :
[[NSUserDefaults standardUserDefaults]setObject:@\"YES\" forKey:@\"KTerminated\"];
[[NSUserDefaults standardUserDefaults]synchronize];
For Retriveing use this :
[[[NSUserDefaults standardUserDefaults]stringForKey:@\"KTerminated\"] isEqualToString:@\"YES\"];
回答13:
Here For Swift i create two function which call for save and retrive value for key from Preference
may be this is help full for u
// for saving object
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)!
}
回答14:
update for Swift 3
func setObject(value:AnyObject ,key:String)
{
let pref = UserDefaults.standard
pref.set(value, forKey: key)
pref.synchronize()
}
func getObject(key:String) -> AnyObject
{
let pref = UserDefaults.standard
return pref.object(forKey: key)! as AnyObject
}
回答15:
In Swift4.2 and Xcode 10
//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\")