Problème pour insérer un NSDocument (a MVC problem)

2»

Réponses

  • laudemalaudema Membre
    11:10 modifié #32
    Pour les tableaux, si tu veux y faire des ajouts et que ça soit pris en compte par les bindings il faut aussi coder les deux méthodes
    <br />//Declaration<br />- (void)insertObject:(Figure*)laFigure inLesFiguresAtIndex:(NSUInteger)index;<br />- (void)removeObjectFromLesFiguresAtIndex:(NSUInteger)index;<br />
    

    Le plus simplement possible
    <br />//Implémentation<br />- (void)insertObject:(Figure*)laFigure inLesFiguresAtIndex:(NSUInteger)index{<br />	[lesFigures insertObject:laFigure atIndex:index];<br />}<br />- (void)removeObjectFromLesFiguresAtIndex:(NSUInteger)index{<br />	[lesFigures removeObjectAtIndex:index];<br />}<br />
    

    C'est peut être ce qui manquait...
    Si tu ne le fais pas tes ajouts/suppressions ne sont pas pris en compte. Et il faut les 2 méthodes même si tu n'as prévu que des ajouts.
  • HerveHerve Membre
    11:10 modifié #33
    Revenu de vacances, je lis seulement ce jour ton message Laudema. Merci. Tu m'apprends quelque chose d'ailleurs! Autant, contrairement à  Java, Cocoa ne semble pas exiger lorsqu'on utilise la souris de surcharger toutes les méthodes concernées, autant il semble que pour d'autres choses, il l'exige. Ce que tu dis en est un exemple. Je vais essayer de trouver des infos dans la doc à  ce sujet. Merci.
  • laudemalaudema Membre
    11:10 modifié #34
    Peut être ici: Key-Value Programming Guide: Key-Vale Coding Accessor Methods


    In order to be key-value coding compliant for a mutable ordered to-many relationship you must implement the following methods:

    -insertObject:in<Key>AtIndex: or -insert<Key>:atIndexes:. At least one of these methods must be implemented. These are analogous to the NSMutableArray methods insertObject:atIndex: and insertObjects:atIndexes:.
    -removeObjectFrom<Key>AtIndex: or -remove<Key>AtIndexes:. At least one of these methods must be implemented. These methods correspond to the NSMutableArray methods removeObjectAtIndex: and removeObjectsAtIndexes: respectively.
    -replaceObjectIn<Key>AtIndex:withObject: or -replace<Key>AtIndexes:with<Key>:. Optional. Implement if benchmarking indicates that performance is an issue.

    Sinon la surcharge reste limitée (en général ces méthodes là  font deux lignes chez moi) et en relation avec le KVC/KVO pour que les liaisons fonctionnent.
Connectez-vous ou Inscrivez-vous pour répondre.