ios 将字符串保存到 NSUserDefaults?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/3074483/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Save string to the NSUserDefaults?
提问by Shishir.bobby
How to save a string into the NSUserDefaults
?
如何将字符串保存到NSUserDefaults
?
回答by drawnonward
NSString *valueToSave = @"someValue";
[[NSUserDefaults standardUserDefaults] setObject:valueToSave forKey:@"preferenceName"];
[[NSUserDefaults standardUserDefaults] synchronize];
to get it back later
稍后取回
NSString *savedValue = [[NSUserDefaults standardUserDefaults]
stringForKey:@"preferenceName"];
回答by Mihir Mehta
more precisely
更确切地说
-(void)saveToUserDefaults:(NSString*)myString
{
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
if (standardUserDefaults) {
[standardUserDefaults setObject:myString forKey:@"timestamps"];
[standardUserDefaults synchronize];
}
}
回答by Ε Г И ? И О
Here's how to do the same with Swift;
下面是如何用 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
在 Swift 3.0 中
var valueToSave = "someValue"
UserDefaults.standard.set(valueToSave, forKey: "preferenceName")
if let savedValue = UserDefaults.standard.string(forKey: "preferenceName") {
}
回答by v01d
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
您真的应该查看 Apple 的 NSUserDefaults 类参考以及本教程:iPhone 编程教程 – 使用 NSUserDefaults 保存/检索数据
回答by Walter Schurter
Do not forget this statement because otherwise it may not always work:
不要忘记这句话,否则它可能并不总是有效:
[standardUserDefaults synchronize];
回答by Vishnuvardhan Sadu
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"];
回答by Raviprakash
[[NSUserDefaults standardUserDefaults] setValue:aString forKey:aKey]
[[NSUserDefaults standardUserDefaults] setValue:aString forKey:aKey]
回答by Sunkas
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";
回答by bharathi kumar
-(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]
回答by Mithun R
FirstView
的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];}
(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 *挑选器= [[的UIImagePickerController
的alloc] INIT]; picker.delegate = self; picker.allowsEditing = YES; picker.sourceType =
UIImagePickerControllerSourceTypePhotoLibrary; [self presentViewController:picker 动画:YES 完成:NULL];}
second View{ NSMutableArray *arr; }
第二个视图{ 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; }