J'ai besoin de quelques conseils sur la façon de procéder:Problème de stratégie: Récupération de données à partir de XML pour mettre à jour la base de données de base de données locale?
1) Je récupère un XML à partir d'un serveur Web.
2) Je veux stocker toutes les entités (c'est-à-dire les amis) de ce XML localement sur l'appareil, en utilisant des données de base.
3) Je parse le XML et faire dans ce XML
4) un objet géré pour chaque ami, mais je veux vous assurer que je ne pas ajouter un ami à plusieurs reprises dans le DB. Comment pourrais-je réaliser cela?
-------------- mes pensées stratégiques sur ce ----------------
A) lors de l'analyse du XML, Je crée un objet géré de l'entité Ami dès qu'un élément Ami est démarré. À ce stade, je ne sais pas quel ami il sera, jusqu'à ce que le NSXMLParser passe par tous les attributs à venir comme prénom, id, etc .; Après l'étiquette de fin pour l'élément ami, j'ai cet ami dans mon contexte d'objet géré. Ensuite, je fais un NSFetchRequest pour voir si cet ami est déjà stocké. Le problème est, que le nouvel ami fait déjà partie du contexte, donc Core Data retournera toujours un match !? B) J'ai besoin de deux contextes d'objets gérés différents pour que les amis analysés entrent d'abord dans MOC_A, puis interroge MOC_B (le magasin local réel) sans que les nouveaux amis analysés ne déplacent ma requête vers le magasin local. Je peux donc savoir si l'ami existait déjà. C) Pendant l'analyse d'un ami à partir du XML, je crée simplement une nouvelle instance d'objet géré SANS l'ajouter à un contexte d'objet géré (possible?!). Plus tard, lorsque l'ami est complètement pares, je vérifie les données de base s'il est stocké. Sinon, je l'ajoute. Sinon, je jette l'objet.D) J'ai besoin d'une autre stratégie.
Vous avez posé cette question plusieurs fois maintenant de différentes façons. La réponse consiste à utiliser un nouvel attribut indexé dans votre entité Core Data pour stocker l'ID unique à partir du XML. Avant d'ajouter un objet, vous devrez vérifier manuellement si un objet avec cet ID existe déjà. – gerry3
Probablement, je le demande de différentes façons, parce que je n'ai pas de réponse utile jusqu'à présent. Celui-ci n'est pas utile non plus. Je ne sais pas ce que vous essayez de dire. Soyez plus détaillé, s'il vous plaît. Comme je l'ai demandé (et plus récent a obtenu une réponse à), le problème est que mon nouvel objet analysé vit dans le contexte, et donc l'interrogation des données de base entraînerait probablement une correspondance. S'il vous plaît lisez mes questions complètement avant de les voter. – dontWatchMyProfile
Maintenant que vous avez ajouté de nouvelles informations, cela a plus de sens. Cependant, vous auriez pu ajouter cette information à l'une ou l'autre des autres questions. – gerry3