CoreData: Comment faire pour récupérer un objet spécifique à l'aide d'un prédicat
La situation:
Je récupérer un tableau complet de mon sqllite base de données de la base de données et l'afficher dans un TableView comme ceci:
NSEntityDescription *entity = [NSEntityDescription entityForName:@"MyTable"
inManagedObjectContext:managedObjectContext];
Le Défi:
Comment puis-je obtenir le champ EntryID et de chercher de l'entrée spécifique de la base de données (par exemple, si je clique sur une entrée)? Je pense que cela va dans la bonne direction?
NSPredicate *predicate = [NSPredicate predicateWithFormat: @"(id = %@)", myEntryID];
Vous devez vous connecter pour publier un commentaire.
Si vous avez une entrée d'objet appelé
entry
, il serait un prédicat comme ceci:Qui est à peu près équivalent à
Pour un
NSManagedObjectID
, vous obtenez quelque chose comme:-[NSManagedObjectContext objectWithID:]
serait probablement mieux.NSFetchedResultsController
vous devez utiliser un prédicat.NSPredicate *predicateForFetch = [NSPredicate predicateWithFormat:@"(self IN %@)", arrayOfNSManagedObjectIDs];
NSInvalidArgumentException', reason: 'keypath objectID not found in entity <NSSQLEntity Report id=7>'
si j'utiliseobjectID
.[NSPredicate predicateWithFormat: @"(SELF = %@)", objectID];
[NSPredicate predicateWithFormat: @"(%K = %@)", @"self", entry];
C'est bon prédicat:
Où
objectID
estNSManagedObjectID
instance.Vous voudrez peut-être regarder à
-[NSManagedObject objectID]
et-[NSManagedObjectContext objectWithID:]
.Lorsque vous créez la table de vous le faire soit avec un tableau retourné par une extraction ou par le tableau implicite à l'intérieur d'un
NSFetchResultsController
. Par conséquent, l'objet que vous voulez a le même indice dans le tableau/contrôleur comme il le fait dans le tableau.Ainsi, il devient tout simplement une question de faire appel:
ou
C'est le vrai génie de la UITable. Il reflète toujours le modèle de données avec précision. Vous n'avez jamais à traduire en arrière et en avant entre la table d'index et de votre modèle de données d'index.