2010-03-01 13 views
3

J'ai une application dans laquelle je voudrais échanger des informations, gérées via Core Data, entre deux iPhones. Est-ce que quelqu'un a essayé ceci et, si oui, quelle est la meilleure approche pour le faire (par exemple, les personnes utilisent un format intermédiaire tel que XML ou JSON dans un fichier ou peuvent-elles être transférées directement). Mes excuses si la question apparaît trop dans le champ d'application mais je suis au stade où je dois décider d'une approche pour le transfert et je n'ai aucune expérience de cette API.Utilisation de GameKit pour transférer des données CoreData entre des iPhones

Je serais extrêmement reconnaissant pour les échantillons de code, ou des liens vers un tel échantillon, pour le transfert d'objets entre les périphériques en utilisant GameKit.

Répondre

5

Vous ne pouvez pas transférer des objets de base de données directement entre périphériques car ils sont liés à leur contexte et les magasins persistants. Vous auriez besoin de traduire les données dans un format intermédiaire (peut être aussi simple qu'un NSDictionary qui se transforme en NSData) et de le pousser à travers la connexion, puis de reconstituer les données de l'autre côté. Personnellement, je pense que JSON est idéal pour ce type de situation, car vous pouvez facilement transformer le graphe d'objet Données de base en un ensemble d'objets consommables JSON (dictionnaires, tableaux, chaînes et nombres) qui peuvent facilement être déplacés.

+0

Merci pour la réponse. Je ne suppose pas que vous ayez un lien vers des exemples de code où un graphe d'objet de données de base (j'ai deux entités liées par une relation) est converti en JSON. Je sais que c'est beaucoup à demander, mais je suis un développeur iPhone relativement nouveau et peut-être pas aussi familier avec ce concept que je devrais être. – Urizen

+0

Je viens de publier un exemple de code (rugueux) dans votre autre question. http://stackoverflow.com/questions/2362323/json-and-core-data-on-the-iphone/2363996#2363996 –

2

Cherchez-vous un transfert unique? Ou cherchez-vous à garder deux iPhones synchronisés les uns avec les autres pendant un certain temps (un jeu?). Je n'ai pas trop regardé dans ce sujet, cependant si vous créez un jeu, je vous suggère de jeter un oeil au chapitre "Sync Services et Core Data" dans le livre "Core Data: l'API d'Apple pour les données persistantes sur Mac OS X".

http://www.pragprog.com/titles/mzcd/core-data

GameKit semble simplement établir une connexion via Bluetooth. Si vous voulez utiliser IP dans le futur, regardez dans AsyncSockets.

http://code.google.com/p/cocoaasyncsocket/

+0

Il s'agit d'un transfert ponctuel où les deux périphériques échangent des données. – Urizen