Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>I added this functionality to my detail view. My entity has a "favorite" attribute. Pressing the "favorite" button in the detail view sets a string for the favorite attribute and toggles a star image on and off:</p> <pre><code>- (IBAction)flagButtonPressed:(id)sender { if (flagButtonSelected == 0) { [flagButton setSelected:YES]; flagButtonSelected = 1; [flagButtonImage setImage:[UIImage imageNamed:@"yesFavorite.png"]]; [myCoolEntity setValue:@"yesFlag" forKey:@"flagSet"]; } else { [flagButton setSelected:NO]; flagButtonSelected = 0; [flagButtonImage setImage:[UIImage imageNamed:@"noFavorite.png"]]; [myCoolEntity setValue:@"noFlag" forKey:@"flagSet"]; } NSManagedObjectContext *context = myCoolEntity.managedObjectContext; NSError *error = nil; if (![context save:&amp;error]) { NSLog(@"Tried to save fav. Unresolved error %@, %@", error, [error userInfo]); abort(); } } </code></pre> <p>Then back in my main table view, I have a favorites button in the nav bar that pushes a new view controller with a NSFetchedResultsController and predicate that looks for all the entities that have the "flagSet" attribute set to "yesFlag".</p> <pre><code>- (NSFetchedResultsController *)fetchedResultsController { // Set up the fetched results controller if needed. if (fetchedResultsController == nil) { // Create the fetch request for the entity. NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; // Edit the entity name as appropriate. NSEntityDescription *entity = [NSEntityDescription entityForName:@"MyCoolEntity" inManagedObjectContext:managedObjectContext]; [fetchRequest setEntity:entity]; NSPredicate *predicate = [NSPredicate predicateWithFormat: @"flagSet like 'yesFlag'"]; [fetchRequest setPredicate:predicate]; //set batch size [fetchRequest setFetchBatchSize:20]; // Edit the sort key as appropriate. NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES]; NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil]; [fetchRequest setSortDescriptors:sortDescriptors]; // Edit the section name key path and cache name if appropriate. // nil for section name key path means "no sections". NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:managedObjectContext sectionNameKeyPath:@"name" cacheName:nil]; aFetchedResultsController.delegate = self; self.fetchedResultsController = aFetchedResultsController; [aFetchedResultsController release]; [fetchRequest release]; [sortDescriptor release]; [sortDescriptors release]; } return fetchedResultsController; } </code></pre> <p>Also, in viewDidLoad for the detail view I display the star image on the favorites button as appropriate:</p> <pre><code>//flag button if ([myCoolEntity.flagSet isEqual:@"yesFlag"]) { [flagButtonImage setImage:[UIImage imageNamed:@"yesFavorite.png"]]; [flagButton setSelected:YES]; flagButtonSelected = 1; } else { [flagButtonImage setImage:[UIImage imageNamed:@"noFavorite.png"]]; [flagButton setSelected:NO]; flagButtonSelected = 0; } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload