title: Core Data not updating, updated model
body: <p>I have a very weird problem that has stumped me rather!</p>
  
  <p>I have a core data entity that i have just added some new attributes to:</p>
  
  <p>deleted - Boolean
  deletedDate - Date</p>
  
  <p>I have the following code, that upon pressing sets both those values on the core data object:</p>
  
  <pre><code>- (IBAction)deleteButtonInTable:(id)sender {
  
  
      //Get the ID of the currently selected item in the table
      NSInteger selected = [self.tweetTableView rowForView:sender];
  
      //Create a predicate and fetch the objects from Core Data
      NSFetchRequest *request = [[NSFetchRequest alloc] init];
      NSPredicate *testForTrue = [NSPredicate predicateWithFormat:@"approved == NO"];
      NSSortDescriptor *sortDescriptor1 = [[NSSortDescriptor alloc] initWithKey:@"postDate"  ascending:NO];
      NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor1, nil];
      [request setPredicate:testForTrue];
      [request setSortDescriptors:sortDescriptors];
  
      [request setEntity:[NSEntityDescription entityForName:@"Tweet" inManagedObjectContext:_managedObjectContext]];
  
      //Setup the Request
      [request setEntity:[NSEntityDescription entityForName:@"Tweet" inManagedObjectContext:_managedObjectContext]];
  
      //Assign the predicate to the fetch request
      NSError *error = nil;
  
      //Create an array from the returned objects
      NSArray *fetchedObjects = [_managedObjectContext executeFetchRequest:request error:&amp;error];
  
      Tweet *selectedTweet = [fetchedObjects objectAtIndex:selected];
  
      if (selectedTweet) {
          selectedTweet.deleted = [NSNumber numberWithBool:TRUE];
          selectedTweet.deletedDate = [NSDate date];
          NSLog(@"%@",selectedTweet);
          [self refreshTableView];
          if (! self.tweetTableView){
              NSLog(@"Tableview doesn't exist!!)");
          }
          [[self tweetTableView] reloadData];
          [[self managedObjectContext] commitEditing];
          [self saveAction:nil];
      }
  
      if ([self.autoWriteTweets isEqualToString:@"YES"]){
          [self writeTweetsToXML];
          [self saveAction:nil];
      }
  }
  </code></pre>
  
  <p>Now, if i watch the object in xcode with some breaks, i can see the attribute change on the object as i pass through the function, but i have an Table displaying a datasource, which is filtered to only show objects that have the deleted bool set to true, and nothing ever shows up there.</p>
  
  <p>Now, to make things even more confusing i have a function that exports an array of the objects:</p>
  
  <pre><code>-(void)writeTweetsToXML{
      //Create new fetch request
      NSFetchRequest *request = [[NSFetchRequest alloc] init];
  
      //Set new predicate to only fetch tweets that have been favourited
      NSPredicate *filterFavourite = [NSPredicate predicateWithFormat:@"approved == YES"];
      NSSortDescriptor *sortDescriptor1 = [[NSSortDescriptor alloc] initWithKey:self.exportSort ascending:NO];
      NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor1, nil];
      [request setSortDescriptors:sortDescriptors];
  
      //Setup the Request
      [request setEntity:[NSEntityDescription entityForName:@"Tweet" inManagedObjectContext:_managedObjectContext]];
      [request setResultType:NSDictionaryResultType];
  
      //Assign the predicate to the fetch request
      [request setPredicate:filterFavourite];
      NSError *error = nil;
  
      //Create an array from the returned objects
      NSArray *tweetsToExport = [_managedObjectContext executeFetchRequest:request error:&amp;error];
      NSAssert2(tweetsToExport != nil &amp;&amp; error == nil, @"Error fetching events: %@\n%@", [error localizedDescription], [error userInfo]);
  
  
       //NSString *documents = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
      //NSString *path = [NSString stringWithFormat:@"%@/tweets.xml", documents];
  NSString *writeerror;
  
      if(tweetsToExport) {
          NSString * exportLocationFull = [[NSString alloc]initWithFormat:@"%@/tweets.xml",self.exportLocation];
          BOOL success = [tweetsToExport writeToFile:exportLocationFull atomically:YES];
          NSLog(@"Write Status = %d to %@", success, exportLocationFull);
      }
      else {
          NSLog(@"%@",writeerror);
  
      }
  
  
  }
  </code></pre>
  
  <p>Now, when i look at the exported file, two things happen which are odd!</p>
  
  <p>Firstly, an object that i have seen have it's deleted value set to true, exports with the value as 0.</p>
  
  <p>Secondly, the deletedDate attribute does not export at all, every, despite it being in the core data model. I can't see any way this can happen as i am doing no specific filtering on the export.</p>
  
  <p>It's like a getter/setter somewhere is broken, but i have checked the class files and everything is as it should be and set to @dynamic.</p>
  
  <p>Any help would be greatly appreciated as i'm a bit lost as to what the hell is going on.</p>
  
  <p>People had warned me about core data's quirks, but this is just plain odd!</p>
  
  <p>Cheers</p>
  
  <p>Gareth</p>
  
  <p><strong>Note 1</strong></p>
  
  <p>As an aside, i am using the exact same code from the first section to set other attributes on objects that are filtered and that seems to work fine!</p>