Dividing UITableView into sections by Core Data Attribute

Discussion in 'iPhone/iPad Programming' started by mdhansen5, May 28, 2012.

  1. macrumors member

    Joined:
    Nov 22, 2010
    Location:
    Colorado
    #1
    I'm quite the newbie at Core Data, so please bear with me. ;)

    In my Data Model, I have a single entity called "Item", with 2 attributes, "Section" and "Name." I already have the UITableView (my main view) populated using by Name, but I want to divide the TableView into 3 different sections, determined by attribute "section." I'm thinking that the "section" attribute should be an integer, so 0 would be the first section, 1 would be the second and 2 would be the third.

    I really am not sure how to divide the TableView into the sections. I'm using NSFetchedResultsController. Here's the current code.

    Code:
    - (void)setupFetchedResultsController
    {
        // 1 - Decide what Entity you want
        NSString *dbEntityName = @"Item"; // Put your entity name here
        
        // 2 - Request that Entity
        NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:dbEntityName];
        
        // 3 - Filter it if you want
        //request.predicate = [NSPredicate predicateWithFormat:@"Item.name = what"];
        
        // 4 - Sort it if you want
        request.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"name"
                                                                                         ascending:YES
                                                                                          selector:@selector(localizedCaseInsensitiveCompare:)]];
        // 5 - Fetch it
        self.fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:request
                                                                            managedObjectContext:self.managedObjectContext
                                                                              sectionNameKeyPath:nil
                                                                                       cacheName:nil];
        [self performFetch];
    }
    Also, I was wondering if the Fetch Request template inside the data model in Xcode would help out at all. I see how to create the fetch request, but not how to make it do anything with what it fetches (ex: put the fetched data into a certain TableView section.)

    If anyone could help out, it would be greatly appreciated.
     
  2. macrumors 6502

    Joined:
    Jul 14, 2008
    #2
    The sectionNameKeyPath argument is what defines your sections. If you set that to the attribute that indicates what your sections are, the table view will automatically include sections.
     
  3. thread starter macrumors member

    Joined:
    Nov 22, 2010
    Location:
    Colorado
    #3
    Alright thanks. So in my case would it just be sectionNameKeyPath:mad:"Section" or would it be sectionNameKeyPath:section. I've never tried sections before, so this is all new to me. Thank you! :D
     
  4. macrumors regular

    Joined:
    Aug 28, 2008
    #4
    Yes
     

Share This Page