2010-05-10 7 views
0

J'utilise des données de base et récupère les résultats avec succès. J'ai quelques questions concernant les données de base 1. Lorsque j'ajoute un enregistrement, sera-t-il ajouté à la fin ou au début de l'entité. 2. J'utilise le code suivant pour récupérer les données. Array est peuplé avec tous les enregistrements. Mais ils ne sont pas dans le même ordre que j'ai entré les enregistrements dans l'entité. Pourquoi? sur quelle base le tri par défaut est utilisé?iphone coredata fetch-request tri

NSFetchRequest* allLatest = [[NSFetchRequest alloc] init]; 
[allLatest setEntity:[NSEntityDescription entityForName:@"Latest" inManagedObjectContext:[self managedObjectContext]]]; 

NSError* error = nil; 
NSArray* records = [managedObjectContext executeFetchRequest:allLatest error:&error]; 
[allLatest release]; 

3. La façon dont j'entre les dossiers, 1,2,3,4 ......... après un certain temps, je veux supprimer les enregistrements que je suis entré dans la première (je veux dire données les plus anciennes). Quelque chose comme supprimer les deux plus anciens enregistrements. Comment faire?

Répondre

3

La commande n'est pas garantie. Si vous vous souciez de l'ordre, vous devez inclure un attribut dans votre entité (par exemple, l'appeler "sequenceNumber") et l'utiliser dans un descripteur de tri avec votre NSFetchRequest.

4

Une sorte sur le tableau que vous avez ressemble à ceci:

 
NSSortDescriptor *descriptor = [[[NSSortDescriptor alloc] initWithKey:@"SortKey" ascending:YES] autorelease]; 
NSArray *sortedList = [records sortedArrayUsingDescriptors:[NSArray arrayWithObjects:descriptor, nil]]; 

Le initWithKey: argument est la propriété que vous souhaitez trier. Si vous avez plusieurs clés à trier, elles peuvent être ajoutées à l'argument sortedArrayUsingDescriptors: en tant que liste. La liste sera triée par le premier descripteur, puis chaque groupe par les descripteurs suivants.

-dan

+0

Je ne veux pas trier. Je veux les enregistrements dans l'ordre que j'ai inséré dans l'entité. – Satyam

+0

Si j'ajoute une propriété "Date" à l'entité, puis puis-je récupérer les enregistrements triés directement à partir de la date de base. Ou alors, puis-je supprimer les enregistrements ne conservant que les dernières données d'une semaine? – Satyam

Questions connexes