2010-05-03 9 views
2

J'exécutons des données de base vont chercher qui spécifie un prédicat comme suit:données de base n'extraient que renvoie des objets gérés uniques

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"identifier IN %@", favoritesIDs]; 

Quand il y a des doublons dans le tableau favoriteIDs, la requête d'extraction retourne seulement 1 objet géré. Comment puis-je m'assurer que plus d'une instance est récupérée? Je vous remercie.

Répondre

3

L'exécution d'une requête d'extraction sur un contexte ne retournera jamais plus d'une instance pour un contexte donné d'objet géré; vous devrez gérer le nombre d'instances virtuelles d'une autre manière. En fait, tout objet défectueux que vous avez précédemment obtenu d'un contexte aboutira à la même instance de cet objet dans les requêtes ultérieures exécutées sur le contexte (vous pouvez donc vous retrouver avec la même instance d'un objet même à partir de plusieurs exécutions de requêtes).

+0

Notez que cela ne s'applique que lorsque vous utilisez un seul 'NSManagedObjectContext'. Lorsque vous avez plusieurs NSManagedObjectContext, comme dans un environnement multithread, il existe une instance par NSManagedObjectContext. –

+0

@Marcus S. Zarra: Je mets une instance par MO Context; Bien sûr, l'objet géré n'a aucun sens dans ce contexte. Édité. –

Questions connexes