Binding entre valeurs
AlfAlf
Membre
Bonjour,
je débute en objective-C et en binding. Voila ce que je veux faire:
j'ai créé 2 classes
_ "Comptes" qui contient:
_ deux proprietes : "Nom" et "Solde" (sous forme de NSMutableDictionnary),
_ un NSMutableArray "operations" qui est ammené à recevoir une liste d'operations de la classe "Opérations"
_ "Operations" qui contient:
_ plusieurs proprietes dont celle qui m'interesse maintenant "Montant"
Dans mon application j'ai créé deux tableView une qui reflete la liste des comptes et l'autre celle des operations du compte sélectionné.
Je voudrais binder la valeur de "Solde" de Compte à la somme des montants des operations du compte, mais je n'y arrive pas, j'ai essayer un truc avec "selection" mais je n'y arrive pas.
Si vous avez des idées pour faire ça ?
Merci d'avance
je débute en objective-C et en binding. Voila ce que je veux faire:
j'ai créé 2 classes
_ "Comptes" qui contient:
_ deux proprietes : "Nom" et "Solde" (sous forme de NSMutableDictionnary),
_ un NSMutableArray "operations" qui est ammené à recevoir une liste d'operations de la classe "Opérations"
_ "Operations" qui contient:
_ plusieurs proprietes dont celle qui m'interesse maintenant "Montant"
Dans mon application j'ai créé deux tableView une qui reflete la liste des comptes et l'autre celle des operations du compte sélectionné.
Je voudrais binder la valeur de "Solde" de Compte à la somme des montants des operations du compte, mais je n'y arrive pas, j'ai essayer un truc avec "selection" mais je n'y arrive pas.
Si vous avez des idées pour faire ça ?
Merci d'avance
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Pour ton problème, nous avons un docteur spécialisé en bindingologie qui pourra sans doute répondre à ton problème.
Sans doute les opérateurs sur tableaux (Array Operators) des bindings pourraient ici t'être utiles, et en particulier "@sum"
"Solde = [self valueForKeyPath:@operations.@sum.properties.montant"];"
Tu as su ce site un excellent article te montrant leur usage (@count et @sum en l'occurence. (à la deuxième page))
Si tu as besoin de plus de détails n'hésites pas
apres un petit temps d'absence (boulot oblige) j'ai encore des questions sur les bindings
Si j'ai bien compris, les bindings sont une façon simple de faire le "lien" entre l'interface (ce qui s'appelle le "view") et les valeurs des classes (le "modele") ? dans ce cas ma question sur binder des valeurs entre-elles n'était pas très pertinente...
J'arrive bien à afficher dans un champ de l'interface le solde du compte grace à @sum, mais je voudrais que la variable "Solde" de la classe "Compte" ait cette valeur.
Pour faire ce que je veux, il faut plutôt que je fasse appel au "observer" ?
j'arrive bien à ajouter un "observer" sur differentes variables, mais la syntaxe
[self addObserver:self forKeyPath:@operations.@sum.montantSigne" options:(NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld) context:NULL];
ne marche pas, je ne vois vraiment pas comment faire. (le message d'erreur est "[<NSCFArray 0x340dc0> addObserver:forKeyPath:options:context:] is not supported. Key path: @sum.montantSigne")
Si quelqu'un pouvait m'aider : est-ce que c'est possible de faire ça sans trop coder, ou faut-il que je me mette à écrire plus de code pour faire à la main le total ?