Un classe qui dirige plusieurs NSTableView
iShadow
Membre
Bonjour maà®tres développeurs!
Je voudrais savoir s'il est possible de faire en sorte qu'une classe soit le dataSource de plusieurs NSTableView devant afficher des données différentes n'ayant rien à voir entre elles... (différents NSMutableArray)
Je cherche aussi a créer un accesseur d'un NSMutableArray, mais ca ne marche pas...
Je faisais :
Et ca plante... Sans doute une histoire de pointeur... Et je ne comprends rien aux coder/decoder et autres...
Brefs, si vous pouviez m'aider, ce serait simpa
Je voudrais savoir s'il est possible de faire en sorte qu'une classe soit le dataSource de plusieurs NSTableView devant afficher des données différentes n'ayant rien à voir entre elles... (différents NSMutableArray)
Je cherche aussi a créer un accesseur d'un NSMutableArray, mais ca ne marche pas...
Je faisais :
<br />- (NSMutableArray *)getMutableArray<br />{<br />Â Â Â return monMutableArray;<br />}<br />
Et ca plante... Sans doute une histoire de pointeur... Et je ne comprends rien aux coder/decoder et autres...
Brefs, si vous pouviez m'aider, ce serait simpa
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
1° Un accesseur Objective-C s'écrit sous la forme - (NSMutableArray *)mutableArray (sans le get).
2° Oui, tu peux faire qu'une classe soit le datasource de plusieures tableViews. Pour cela, il faut que tu prennes en compte l'argument aTableview des méthodes de datasource.
3° C'est sympa et pas simpa :fouf): (c'est fou ce que l'orthographe des jeunes est mauvaise aujourd'hui :P)
J'espere que cela te sera utile.
3° Tu fais des progrès cher fouf. Mais il y a encore 2 fautes qui traà®nent: plusieurs s'écrit sans "e" et espérer prend un accent grave à la première personne.
Euh, on peut nommer un accesseur comme on veut non ? Enfin, je veux dire que je peux l'appeller toto si je veux non ? lol
Sinon, peux-tu être plus précis quant-à la gestion de plusieurs dataSource ?
Pour gérer plusieurs datasource, il faut juste que tu crées autant d'instance qu'il n'y a de tables. En fait, il n'y a rien de vraiment particulier.
Pour mon dataSource, j'ai implémenté les méthodes
et
Je dois les écrire deux fois dans le code ?
[EDIT]Oups toutes mes excuses, je n'avais pas vu que tu voulais un datasource pour plusieurs tables, et non une classe datasource qui alimente plusieurs tables (avec une instance par table). Dans ce cas tu dois utiliser la table placée en argument et faire une compairison de pointeurs, par exemple
[tt]- (int)numberOfRowsInTableView:(NSTableView *)aTableView {
  if ([aTableView == table1]) {
     return [array1 count];
  } else if ([aTableView == table2]) {
     return [array2 count];
  }
  return 0;
}[/tt]
Ou, autre possibilité, attribuer un tag différent pour chaque table, ce qui donne;
[tt]- (int)numberOfRowsInTableView:(NSTableView *)aTableView {
  switch ([aTableView tag]) {
    case 1: return [array1 count];
    case 2: return [array2 count];
  }
return 0;
}[/tt]
control reaches end of non-void function
Bizzare...
Voila, Renaud t'as donné l'explication. Un petite précision : en Java, les accesseurs se notent bien avec get. Ceci explique peut-être cela.
Pour, les "control reaches end of non-void function" que tu as l'air d'apprécier particulièrement , le truc, c'est de rajouter le return "par défaut" dès la création de ta méthode. Voila, c'est un truc (inutile) comme un autre. ???
(Pas d'oubli d'accent, pas de fautes d'accord, Renaud ne regarde pas, c'est bon, je peux poster) :P
[EDIT] : et ça marche... Merci les gars :adios!:
Si si, il y en a encore (au moins 3). Il faudrait passer à la modération à postériori pour toi. On ne va quand même pas laisser de telles horreurs sur le site...