La création de sections avec NSFetchedResultsController, à la volée

Je suis en utilisant NSFetchedResultsController (NSFRC) pour afficher des informations dans un UITableView. Je suis en train de créer la possibilité pour l'utilisateur de trier les cellules dans les sections, par opposition à l'ordre alphabétique. Le problème est, les sections qui serait déterminé à l'aide de données téléchargées. Sur le dessus de cette section pour chaque élément va changer relativement souvent, donc je ne veux pas enregistrer la section. J'ai remarqué la mention passagère des attributs, dans ma recherche de problèmes similaires, mais je n'ai jamais utilisé l'un de ces avant que je ne suis pas sûr si je peux les utiliser à nu à l'esprit que tous les calculs sont effectués une fois que les données ont déjà été chargées, et je veux aussi que cette solution pour être compatible avec mon précédent Core Data database. Aussi, je ne suis pas particulièrement grande à Core Data, (ni Objective-C qui plus est!) donc, je ne suis pas entièrement sûr de savoir comment j'allais le faire.

Voici ce que j'ai envie d'aller faire si nous sommes à l'aide transitoire attributs (ce bit suivant est théorique car je ne sais pas si transitoire attributs sont la bonne voie à suivre). Je voudrais 4 sections possibles, de 0 à 3 (je vais les renommer à l'aide de la TableView delegate pour contourner les problèmes de tri). Quand le calcul est terminé, chaque cellule sera attribué à l'éphémère, de l'attribut (si nécessaire, la valeur par défaut est 2). J'espère que tout cela fait sens.

Droit, maintenant, pour certains théorique de code. J'ai d'abord créer le transitoire de la propriété dans le Modèle de Données de l'écran-chose, et de le rendre transitoire par la vérification de l'transitoire case à cocher... semble assez simple.

Dans le code pour les calculs dans willDisplayCell (qui doit être fait dans wDC pour un couple de raisons), l'entité pourrait être enregistré comme ceci:

MyEntity *myEntity = [self.fetchedResultsController objectAtIndexPath:indexPath];

myEntity.sectionTransientProperty = 2;

if (![self.managedObjectContext save:&error]) {
    NSLog(@"Error: %@", error);
    FATAL_CORE_DATA_ERROR(error);
    return;
}  

À faire, non? C'est que la façon dont nous affecter une valeur à une passagère de la propriété?

Puis-je changer l'option de tri dans NSFRC quand je alloc:

fetchedResultsController = [[NSFetchedResultsController alloc]
                                initWithFetchRequest:fetchRequest
                                managedObjectContext:self.managedObjectContext
                                sectionNameKeyPath:@"sectionTransientProperty"
                                cacheName:@"MyEntity"];

Comment faisons-nous, de quoi dois-je faire? Ou j'ai obtenu ce si horriblement mal, je doit juste donner sur Core Data and NSFRC? Si vous les gars pourrait aider à me guider à travers ce que je l'apprécierais vraiment. Si vous avez besoin de moi pour poster tout le code, je serais heureux de.

Ce qui concerne,
Mike

OriginalL'auteur Mackey18 | 2013-01-05