开发者

Core data with primary key

开发者 https://www.devze.com 2023-02-19 16:55 出处:网络
I want to retrieve data from core data (sqlite database) according to primary key. it is displaying data in ascending or descending order.. ordering of data is not like database..

I want to retrieve data from core data (sqlite database) according to primary key. it is displaying data in ascending or descending order.. ordering of data is not like database.. my code is:

- (NSFetchedResultsController *)fetchedResultsController {

    if (fetchedResultsController != nil) {
        return fetchedResultsController;
    }

    /*
     Set up the fetched results controller.
     */
    // Create the fetch request for the entity.
    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    // Edit the entity name as appropriate.
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Tutorial" inManagedObjectContext:managedObjectContext];
    [fetchRequest setEntity:entity];

    // Set the batch size to a suitable number.
    [fetchRequest setFetchBatchSize:20];

    // Edit the sort key as appropriate.
    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"Topic" ascending:NO];
    NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];

    [fetchRequest setSortDescriptors:sortDescriptors];

    NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:managedObjectContext sectionNameKeyPath:nil cacheName:@"Root"];
    aFetchedResultsController.delegate = self;
    self.fetchedResultsController = aFetchedResultsController;

    [aFetchedResultsController release];
    [fetchRequest release];
    [sortDescriptor release];
    [sortDescriptors rel开发者_Go百科ease];

    return fetchedResultsController;
}   


your code says

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"Topic" ascending:NO];

so your result will be sorted by the field "Topic" in descending order

maybe

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"id" ascending:YES];

don't think you should be using "id" in coredata unless u are migrating from some legacy database

0

精彩评论

暂无评论...
验证码 换一张
取 消