2010-06-17 3 views
1

J'ai donc essayé de concevoir une manière propre de saisir des données pour mes modèles dans l'iPhone terrestre. Toutes les données pour mon application proviennent des API JSON. Donc maintenant, quand un VC a besoin de certains modèles, il fait l'appel JSON lui-même (asynch) et quand il reçoit les données, il construit les modèles. Cela fonctionne, mais j'essaie de penser à une méthode plus propre par laquelle les DAO récupèrent les informations pour moi et retournent les modèles, d'une manière asynchrone.Conception de DAO autour d'une API JSON pour le développement iPhone

Ma pensée initiale est de construire un protocole pour mes DAO, de sorte que le VC instancie un DAO et se fasse le délégué. Lorsque vous demandiez des données [DAOinstance getAllUsers], DAO effectuait toutes les tâches de requête réseau, puis, lorsqu'il disposait des données, appelait une méthode sur son délégué (le VC) pour transmettre les données. Donc je pense que c'est une solution cool, mais je me suis rendu compte que si j'avais besoin d'utiliser le même DAO à différentes fins dans le même VC, ma méthode déléguée devrait se connecter en fonction de l'instance DAO qui a initié la requête. Donc, ma deuxième pensée a été de pouvoir passer des sélecteurs 'handler' à l'objet DAO par des patterns javascript typiques. Donc, au lieu d'un protocole officiel, je dirais quelque chose comme [DAOinstance getAllUsersWithSelector: "TheHandlerFunctionOnMyVC:"] Ensuite, lorsque le DAO a terminé ses activités réseau, il appelle le sélecteur passé sur le VC, et transmet les données.

Alors est-ce que je me dirige dans la mauvaise direction tout à fait ici? On dirait que c'est peut-être un bon moyen d'y aller.

Tous les pointeurs ou articles sur la conception de ce type de couche de données seraient doux.

Merci! Bob

Répondre

2

Il est assez fréquent de passer la cible a (votre VC ici) et un sélecteur (la méthode du gestionnaire) lorsque vous avez besoin d'un rappel et que vous ne voulez pas vous connecter sur l'appelant de la méthode du gestionnaire. C'est ce qu'on appelle le modèle de sélecteur de cible. En dehors de cela, vous voudrez peut-être consulter les cadres RestfulCoreData et CoreResource sur les conceptions possibles de ce.

De même, le fameux framework ObjectiveResource pourrait fournir un bon aperçu.

Questions connexes