CoreData : ça marche aussi pour les trucs simples

ChachaChacha Membre
Salut,

Pour ma dernière appli MozoDojo 2, je me suis penché sur CoreData. J'ai attendu longtemps pour m'y mettre, mais maintenant je vais essayer de l'employer plus souvent.
Comme beaucoup, j'avais essayé le tutorial officiel. Un gros tutoriel "zéro-ligne de codes", qui nous fait construire un truc énorme, sans taper une ligne de code... et qui au final me semble totalement inutilisable, me donnant l'impression que j'ai été spectateur sans rien comprendre. C'est bien joli de vouloir faire une appli multi-document-avec-des-bindings-partout-et-qui-sauvegarde-en-xml-sans-une-ligne-de-code, mais c'est pas comme ça que je comprends, moi ! Bref, pour MozoDojo, je m'y suis pris autrement.

Dans MozoDojo, j'analyse des images. L'analyse d'une image me donne un NSData. Et comme je n'ai pas envie de faire les calculs deux fois, il faut que je stocke tout ça. Gros intérêt de CoreData : avec le système SQLLite, je peux créer une base de donnée de résultats, et ne charger en mémoire que ceux dont j'ai besoin. Nickel !

J'ai donc créé un Data model avec une entité. Quelques attributs: un identifiant pour mon image, et le NSData que j'ai calculé. En pièce jointe, je vous présente ce data model : au moins il ne fait pas peur !

Déjà , l'entité n'a pas de relations avec d'autres entités. Pas la peine de configurer les one-to-many, les nullify et les cascades. Ensuite, la classe sous-jacente à  l'entité, je ne l'ai même pas faite. J'ai gardé un NSManagedObject, sans sous-classer. J'y accède avec quelques valueForKey, et c'est bien suffisant.

Voilà , tout ça pour dire que CoreData c'est vachement bien même sans aller chercher des modèles hyper-compliqués.

A+

Chacha


[Fichier joint supprimé par l'administrateur]

Réponses

  • elfelf Membre
    23:59 modifié #2
    C'est vrai que j'ai vu le tutoriel vidéo d'Apple et c'est vrai que c'est assez mal foutu.

    Tu as lu le tutoriel de cocoadevcentral? Lui par contre est assez bien fait!
Connectez-vous ou Inscrivez-vous pour répondre.