<

Saving & Loading Data 2

>

Reference: Apple Developer Page

 

Setup:

  1. Create a Single View Application
  2. Add 2 buttons
  3. Add 3 text field
  4. Add 3 labels.

NMViewController.h

@interface NMViewController : UIViewController

@interface NMViewController : UIViewController
{
IBOutlet UILabel *goodlabel;
IBOutlet UITextField *goodfield;
IBOutlet UILabel *badlabel;
IBOutlet UITextField *badfield;
}
-(IBAction)savedata:(id)sender;
-(IBAction)loaddata:(id)sender;

@end


NMViewController.m

@implementation NMViewController

-(IBAction)savedata:(id)sender;
{
NSString *savestring = field.text;
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:savestring forKey:@"savedstring"];

NSString *badsavestring = badfield.text;
NSUserDefaults *baddefaults = [NSUserDefaults standardUserDefaults];
[baddefaults setObject:badsavestring forKey:@"badsavedstring"];

NSString *modsavestring = modfield.text;
NSUserDefaults *moddefaults = [NSUserDefaults standardUserDefaults];
[moddefaults setObject:modsavestring forKey:@"modsavedstring"];

[defaults synchronize];
}
-(IBAction)loaddata:(id)sender
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *loadstring = [defaults objectForKey:@"savedstring"];
[field setText:loadstring];
[label setText:loadstring];

NSUserDefaults *baddefaults = [NSUserDefaults standardUserDefaults];
NSString *badloadstring = [baddefaults objectForKey:@"badsavedstring"];
[badfield setText:badloadstring];
[badlabel setText:badloadstring];

NSUserDefaults *moddefaults = [NSUserDefaults standardUserDefaults];
NSString *modloadstring = [moddefaults objectForKey:@"modsavedstring"];
[modfield setText:modloadstring];
[modlabel setText:[NSString stringWithFormat:@"%@ is much %@ than %@", loadstring, modloadstring, badloadstring]];
}

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self loaddata:self];
}

- (BOOL)textFieldShouldReturn: (UITextField *)textField
{
[textField resignFirstResponder];
return NO;

}

- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.

Make all connections