title: How to save data with NSUserDefaults using data from NSMutableArray
body: <p>My <code>NSMutableArray</code> is declared in my .h file like this </p>
  
  <pre><code>@property (strong, nonatomic) NSMutableArray * numbers;
  </code></pre>
  
  <p>How do I use the NSMutableArray to save the data that is inputed to save to <code>NSUserDefaults</code></p>
  
  <p>All help is appreciated</p>
  
  <p>Thanks in advance </p>
  
  <p>code in .h file</p>
  
  <pre><code>@property (retain, nonatomic) IBOutlet UITableView *myTableView;
  @property (strong, nonatomic) NSMutableArray * numbers;
  </code></pre>
  
  <p>code in .m</p>
  
  <pre><code>@synthesize myTableView, numbers;
  
  -(void) viewDidLoad
  {
  
      NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];
      [defaults setObject:numbers forKey:@"numberArray"];
  
      NSMutableArray *resultArray = [NSMutableArray arrayWithArray:[defaults objectForKey:@"numberArray"]];
  
  
  
      [super viewDidLoad];
      // instantiate our NSMutableArray
      numbers = [[NSMutableArray alloc]initWithObjects:@"",@"", nil];
  
  
  
  
  
  
      //Add a edit button
      self.navigationItem.leftBarButtonItem = self.editButtonItem;
  
      //Add the Add button
      UIBarButtonItem * addButton = [[UIBarButtonItem alloc]
                                     initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target: self action: @selector(insertNewObject)];
  
      self.navigationItem.rightBarButtonItem = addButton;
  
  }
  -(void) didReceiveMemoryWarning
  {
      [super didReceiveMemoryWarning];
  
  }
  
  -(void)setEditing:(BOOL)editing animated:(BOOL)animated
  {
  
      [super setEditing:editing animated:animated];
      [myTableView setEditing:editing animated:animated];
  
  
  
  
  }
  
  
  -(void) insertNewObject
  {
  
      //Display a UIAlertView
      UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Enter HomeWork" message: @"" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Ok", nil];
  
  
      alert.alertViewStyle = UIAlertViewStylePlainTextInput;
      [alert show];
  
  }
  
  
  
  #pragma mark - UITableView Datasource
  
  -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
      return 1;
  }
  
  -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
      return numbers.count;
  }
  
  -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
      static NSString *cellIdentifier = @"cell";
  
      UITableViewCell *cell = [ tableView dequeueReusableCellWithIdentifier:cellIdentifier];
  
      if(cell == nil) {
          cell = [[UITableViewCell alloc] initWithStyle: UITableViewCellStyleDefault
                                        reuseIdentifier: cellIdentifier];
      }
  
      cell.textLabel.text = [numbers objectAtIndex:indexPath.row];
  
      return cell;
  }
  
  -(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
  {
      return YES;
  
  }
  
  -(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
  {
      if (editingStyle == UITableViewCellEditingStyleDelete)
      {
          //remove our NSMutableArray
          [numbers removeObjectAtIndex:indexPath.row];
          //remove from our tableView
          [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
      }
  
  
  }
  
  
  #pragma mark - UITableView Delegate methods
  
  
  #pragma mark - UIAlertViewDelegate Methods
  
  
  -(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
  {
      //Only perform the following actions if the user hits the ok button
      if (buttonIndex == 1)
      {
          NSString * tmpTextField = [alertView textFieldAtIndex:0].text;
  
  
  
          if(!numbers)
  
              numbers = [[NSMutableArray alloc]init];
  
  
  
  
      [numbers insertObject:tmpTextField atIndex:0];
  
  
  
          NSIndexPath * indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
  
          [self.myTableView insertRowsAtIndexPaths:@[indexPath]withRowAnimation:UITableViewRowAnimationAutomatic];
  
  
  
          }
  
  
  
  }
  
  
  @end
  </code></pre>
  
  <p>Ok, in my app, there is a UITableView</p>
  
  <p>when the user taps the "plus" button, a UIAlertView shows up with a UITextField, when the user types a word, the text goes to the UITableView, but when the user exits the app, the text is gone from the table.   I want to save the text the user puts in, so when the user exits the app and comes back, i want the text to save.   I want to save it with NSUserDefaults.</p>