2010-12-11 10 views
0

Existe-t-il un moyen simple de récupérer la valeur de propriété par ID?CoreData - Valeur par ID

J'ai utilisé:

[request setReturnsDistinctResults:YES]; 
[request setResultType:NSDictionaryResultType]; 

J'ai récupéré un dictionnaire de valeurs uniques comme ceci:

(
    {Category = "0x6d83070 <x-coredata://04C30A5B-A2A2-4342-B5D4-DCE1AAA339DB/Category/p15>";}, 
    {Category = "0x5cbad20 <x-coredata://04C30A5B-A2A2-4342-B5D4-DCE1AAA339DB/Category/p16>";} 
) 

Comment utiliser ces identifiants? Comment récupérer des données de la table de catégories ayant ces identifiants? Est-ce que objectWithID: objectID m'aidera?

s'il vous plaît aider

Répondre

0

Oui, cela devrait être une instance de NSManagedObjectID, que vous pouvez donner à -[NSManagedObjectContext objectWithID:] pour récupérer l'objet réel.

Mais cela soulève la question: pourquoi ne pas simplement tout ramasser comme un objet plutôt que comme un dictionnaire? Alors vous pouvez juste faire:

NSArray * results = [context executeFetchRequest:request error:nil]; 
MyManagedObject * obj = [results objectAtIndex:0]; 
Category * category = [obj category]; 
+0

Merci pour la réponse. J'utilise setReturnsDistinctResults: YES - lorsque vous utilisez ceci, vous devez changer le type en dictionnaire. J'ai essayé tellement de fois avec l'objet retourne toute la table. – Cezar

+0

@Cezar 'setReturnsDistinctResults:' nécessite un type de retour de dictionnaire? C'est une nouvelle pour moi! Êtes-vous sûr que c'est correct, cependant? J'ai regardé dans la documentation et n'ai rien trouvé ... –