[Résolu] Upload Appli et récup données coreData

busterTheobusterTheo Membre
octobre 2015 modifié dans Dev. iOS, watchOS, tvOS #1

Bonjour,


lorsque l'on envoi la v2 d'une appli chez Apple, on fait comment pour que l'utilisateur, lorsqu'il l'installe, conserve ses données enregistrées dans le coredata ?


 


Merci d'avance


Mots clés:

Réponses

  • Je crois que c'est automatique.


     


    Attention, si entre la v1 et la v2 tu changes ton modèle, ça peut être plus compliqué...


  • Ouais, j'espère ne pas le changer, et si on le change, t'as une idée ?


     


    Et si on le change pas, c'est automatique. T'en es vraiment sur ? Parce que c'est carrément chaud pour le client ce genre de truc.


  • Je préfère dire "je crois que c'est automatique" pour ne pas m'engager. Mais oui, c'est bon.


     


    Si le modèle change, et bien, tu verras le moment venu. Mais ça *peut* chiant et faudra lire de la doc ! Les cas simples sont automatiques. En gros, tant que tu ajoutes des entités et/ou que tu les renommes (je crois), c'est ok. SI tu commences à  faire plus compliqué, c'est plus relou. Mais ça se fait.

  • génial - C'est la fête du slip - On s'éclate. Je suis en train d'avoir la haine face aux applis apple - voir mes autres posts à  venir


  • Si tu changes ton modèle, comment veux-tu que core data puisse lire tes anciennes données !!


     


    C'est un peu comme si tu essayais de lire un document word avec un autre traitement de texte ! Il faut bien lui expliquer comment transformer le doc word en le nouveau doc !


     


    Ici c'est pareil. Si tu changes ton modèle, il faut que tu lui expliques comment transformer le doc v1 en doc v2. Il traite déjà  des cas automatiquement, et c'est déjà  cool.


  • AliGatorAliGator Membre, Modérateur
    Si ton modèle a complètement changé entre la version 1 et la version 2, il faut lui fournir un Mapping Model (ou Migration Model, je sais plus comment ça s'appelle) pour lui expliquer comment transformer les données de ton ancien modèle vers le nouveau, car sinon comment veux-tu qu'il devine que ce que tu avais appelé "Données" avec les champs "nom" et "ville" soit maintenant répartis dans une entité "Personne" qui contient le nom, mais que la ville soit maintenant dans l'attribut "city" de l'entité "Adresse" liée à  la personne... il peut pas tout deviner tout seul dans des cas aussi complexes.

    Maintenant, si ton modèle n'a que peu changé, et si en plus tu as fait des versions (dans l'éditeur Core Data, dans je ne sais plus quel menu dans la barre de menu > "New Version") pour que la nouvelle appli soit livrée avec le nouveau modèle mais aussi une trace de l'ancien, alors il peut dans la plupart des cas faire ce qu'on appelle une "Lightweight Migration", où il va savoir tout seul retrouver ses petits, en particulier si tu n'as fait que rajouter des champs ou en enlever certains sais pour autant complètement restructurer ta base.

    Et dans ce cas si tu fais une "Lightweight Migration" (il suffit de mettre une clé à  @YES dans le dictionnaire "options:" quand tu initialises ton CoreData je sais plus où) t'as rien à  faire, il fait ça tout seul de façon transparente.

    Tout est assez bien expliqué ici dans la doc Apple.
  • Des super bonnes nouvelles tout çà .


     


    Merci beaucoup


Connectez-vous ou Inscrivez-vous pour répondre.