[A supprimer] Core Data: qu'est-ce qui est réellement créé par le "add:" du contrôle

berfisberfis Membre
mai 2013 modifié dans API AppKit #1

Bonjour,


 


Une question me turlupine.


 


J'emploie le bon vieux truc du bouton + pour le lier à  la méthode add: d'un arrayController, et effectivement mon managedObject semble se créer et apparaà®tre dans la liste.


 


Mais je suis dans une tableView. La doc dit que l'arrayController est "hautement optimisé" pour traiter les entités Core Data. Mais de quelle manière, et jusqu'à  quel point?


 


Si l'un des attributs, un texte par exemple, est lié à  un autre élément, comme une textView, il se passe chez moi la chose suivante:


bouton + : l'objet apparaà®t dans la tableView, je peux éditer les cellules (qui contiennent des attributs) et tout se passe bien. Mais:


bouton +, je change le textView.


bouton + le textView reste le même.


 


En fait, "tout se passe comme si" les managedObjects n'existaient réellement qu'après le premier "save". Il y a, comme pour un problème précédent, une sorte d'absence du KVO entre le contrôleur et le managedObjectContext, comme si le contrôleur affichait dans la tableView qu'il gère, mais ignorait le reste. Alors c'est quoi? Un proxy dont seuls les attributs apparaissant dans la tableView "existent"?


 


Je débloque, j'ai mal lu la doc, ou mon erreur n'a rien à  voir avec tout ça?


 


Merci de me dire si ces problèmes ont déjà  été rencontrés, ou même si MagicalRecord nou mets à  l'abri de ces affres.


Réponses

  • colas_colas_ Membre
    mai 2013 modifié #2

     


    Si l'un des attributs, un texte par exemple, est lié à  un autre élément, comme une textView, il se passe chez moi la chose suivante:


    bouton + : l'objet apparaà®t dans la tableView, je peux éditer les cellules (qui contiennent des attributs) et tout se passe bien. Mais:


    bouton +, je change le textView.


    bouton + le textView reste le même.


     


     



     


     


    Peux-tu redécrire ce qui se passe, je n'ai pas compris ?


  • berfisberfis Membre
    mai 2013 modifié #3

    Volontiers.


    Attribut = attribute d'un NSManagedObject, défini dans l'"Entity" du modèle.


     


     


    Si l'un des attributs du managedObject, un texte par exemple, ou une image, est lié à  un autre élément d'interface (donc hors tableView), comme une textView ou une imageView, il se passe chez moi la chose suivante...


    Ajout d'un managedObject au contrôleur:  l'objet apparaà®t dans la tableView, je peux éditer les cellules (qui contiennent des attributs) et tout se passe bien. Mais:


    Ajout d'un managedObject au contrôleur, je change l'attribut text en entrant du texte dans la textView.
    Ajout d'un nouveau managedObject au contrôleur: le contenu de la textView reste le même. (tout se passe comme si le binding était rompu)...


     


     


    EDIT: Cette branche est reliée au problème "Une fenêtre style "Inspecteur" avec des documents Core Data. Comment faire?" résolu entretemps. Elle n'est donc pour moi qu'une fausse piste que j'ai suivie. Le lien est celui-ci:


    http://forum.cocoacafe.fr/topic/10913-une-fenêtre-style-inspecteur-avec-des-documents-core-data-comment-faire/


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