2010-06-22 5 views
0

peut nybody me donner un exemple qui expliquera le processus de stockage des données dans coredata qui est reçu de webservice. Je ne veux pas utiliser sqlite DB. peut-être un lien qui démontre ce genre d'exemple.stocker dans des coredata de webservices

Répondre

4

Il n'y a vraiment aucune astuce particulière liée aux services web en particulier. Une fois que vous obtenez les données du service, vous créez des instances de vos classes de données de base, puis les remplissez en utilisant les données comme vous le feriez avec des données provenant de toute autre source telle que l'interface utilisateur. Par exemple, la plupart des implémentations JSON fournissent les données renvoyées dans un dictionnaire. Par exemple, la plupart des implémentations JSON fournissent un dictionnaire. Vous définissez simplement les propriétés dans l'objet de données principal aux valeurs appropriées dans le dictionnaire.

Si vous ne savez pas comment configurer et utiliser les données de base, vous devez d'abord apprendre cela.

Edit:

De commentaire:

oh ok. donc je comprends comment attribuer un emplacement du fichier s'il est dans le dossier de documents . mais dans ce cas je reçois les données d'un service web qui est reçu sous la forme d'une réponse . Alors, que dois-je faire dans ce cas? il n'y aura pas lieu d'attribuer la boutique

Il n'y a aucun lien entre la source des données et l'emplacement du fichier magasin. Dans le cas normal, vous ne serez pas connecté à un magasin géré Core Data sur le serveur web (possible mais rare.) Au lieu de cela les données provenant du serveur est un format standard tel que JSON, REST, etc Votre application sera créer le magasin local (où vous décidez de le mettre) et initialiser la pile de données de base. Ensuite, il prendra la sortie de l'analyseur JSON et créera NSManagedObjects pour représenter les données. Ensuite, il va enregistrer ces objets dans le magasin comme il le ferait avec les données de toute autre source.

Ainsi, il pseudocode ressembler à:

Core Data{ 
    Create local persistent store in desired location; 
    Create managed object context; 
    Load managed object model: 
} 

Network Inteface { 
    Connect to Server; 
    Send request; 
    Parse request into objective-C data structure (array, dictionary, etc) 
} 

Load Data strucutre into Core Data{ 
    Either { 
     Insert into context NSManageObject for entity that models recieved data 
     or 
     Insert into context instance of NSManagedObject subclass that models the recieved data 
    } 
    Set attributes of entity/instance to the appriopiate fields in the recieved data structure. 
    Save managed object context (which saves the entity/instance to the file on disk) 
} 

Je pense que vous pensez ce processus est beaucoup plus complexe que n'est. Il n'est fondamentalement pas différent de la sauvegarde des données d'un serveur dans un fichier texte local. La seule différence est que vous enregistrez à la pile de données de base à la place.

+0

ouais je comprends le processus mais il sera vraiment utile s'il y a un exemple d'exemple. pouvez-vous me fournir un exemple de données de base avec des services web? – Jayshree

+0

je veux savoir, où le NSPersistentStoreCoordinator cherchera-t-il les données? s'il n'y a pas de base de données SQLite, où devrais-je lui demander de chercher? bcoz je vais obtenir les données de webservice, et l'entrera dans la classe datamodel. pouvez-vous me donner un exemple de code pour cela. – Jayshree

+0

Je n'ai pas un échantillon de ce que vous faites exactement. Cependant, ce n'est pas nécessaire. Lorsque vous créez le magasin persistant, vous affectez un emplacement pour le fichier réel du magasin. L'emplacement préféré est le dossier de bibliothèque de l'application suivi du dossier de documents. Regardez le délégué de l'application de l'un des projets de modèles Xcode. La méthode persistorStoreCoordinator accessor montre comment définir l'emplacement du fichier de stockage. Vous pouvez également affecter une URL hors connexion au magasin, mais cela est rarement fait. Je pense que vous croyez que c'est plus compliqué que ça. Le magasin est juste un fichier. – TechZen