Core data numbre de relation B contenu dans l'entité A
sync
Membre
Bonjour,
J'ai une entité core data qui contient 2 entitées, l'entité A a une relation to-many avec une autre entité B j'utilise un nsarraycontroller pour l'entité A et un autre pour l'entité B et j'aimerai faire apparaà®te pour chaque ligne de mon talbeau controlé par le nsarraycotroller A un nombre dans une colonne représentant le nombre de relations A.B mais si je mets relationPourB.@count dans le model key path dans les bindings d'Interface Builder ça marche après un moment mais j'obtiens ce vilain message d'erreur:
2007-05-22 22:12:16.254 SMSGateway[7738] [<_NSFaultingMutableSet 0x168a800> addObserver:forKeyPath:options:context:] is not supported. Key path: @count
Ah et le contentSet de l'entité B est le suivant:
nsarraycontroller A selection relationToB
Il y aurait apparement une solution à cette réponse ici: http://www.cocoabuilder.com/archive/message/cocoa/2006/2/7/156264 dans la seconde réponse qui est :
You have to bind to a value that's read/write. @count is read only.
If you need to bind to it, make a managed object key like arrayCount
that returns the count in the getter method, and does nothing in the
setter method.
J'ai fait l'object en question rien dans le setter mais je n'arrive pas à trouver le bon keypath pour la methode getter qui retourne le bon @count pour chaque ligne de mon tableau.
Je sais il faut être caustaud pour comprendre cette explication extraordinaire mais ça fait une moment que je me creuse la tête donc si vous avez une solution elle serait vraiment la bienvenue.
Anthony
J'ai une entité core data qui contient 2 entitées, l'entité A a une relation to-many avec une autre entité B j'utilise un nsarraycontroller pour l'entité A et un autre pour l'entité B et j'aimerai faire apparaà®te pour chaque ligne de mon talbeau controlé par le nsarraycotroller A un nombre dans une colonne représentant le nombre de relations A.B mais si je mets relationPourB.@count dans le model key path dans les bindings d'Interface Builder ça marche après un moment mais j'obtiens ce vilain message d'erreur:
2007-05-22 22:12:16.254 SMSGateway[7738] [<_NSFaultingMutableSet 0x168a800> addObserver:forKeyPath:options:context:] is not supported. Key path: @count
Ah et le contentSet de l'entité B est le suivant:
nsarraycontroller A selection relationToB
Il y aurait apparement une solution à cette réponse ici: http://www.cocoabuilder.com/archive/message/cocoa/2006/2/7/156264 dans la seconde réponse qui est :
You have to bind to a value that's read/write. @count is read only.
If you need to bind to it, make a managed object key like arrayCount
that returns the count in the getter method, and does nothing in the
setter method.
J'ai fait l'object en question rien dans le setter mais je n'arrive pas à trouver le bon keypath pour la methode getter qui retourne le bon @count pour chaque ligne de mon tableau.
Je sais il faut être caustaud pour comprendre cette explication extraordinaire mais ça fait une moment que je me creuse la tête donc si vous avez une solution elle serait vraiment la bienvenue.
Anthony
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Donc 2 méthodes
L'entier rowIndex est récupéré depuis cette méthode de tableau déléguée:
Et finalement je bind arrayCount depuis mon applicationDelegate pour la colonne de mon tableau. Cette colone a une nscell personnalisée qui récupère le [self stringValue] commun à toute les nscell et dessine l'étiquette dans la cellule personalisée.
Tout ceci posait un dernier problème, lorsque je cliquais sur ma colonne personnalisée l'étiquette prenait des valeurs innatendues. Donc tableau personnalisé récupérer l'event du mouseDown ne pas faire de [super mouseDown] lorsque l'on clique sur la cellule perso mais récupérer la position du click pour la ligne et sélectionner la ligne sur laquelle on a cliqué à travers le code.
Voilà mais je reste persuadé qu'il y a une solution de loin plus simple elle finira peut être bien par arrivé.
Anthony