Partage
  • Partager sur Facebook
  • Partager sur Twitter

[iOS] Evaluer des conditions dans une chaine de caractères

    19 avril 2012 à 17:28:44

    Bonjour à tous,

    Dans mon application iOS, je récupère une chaine de caractères de ce style là :
    ((gender == F) OR ((gender == M) AND (age > 18))) OR (children > 3)


    J'ai également un NSMutableDictionary contenant ces valeurs (par exemple) :
    NSMutableDictionary *globalVars = [[NSMutableDictionary alloc] initWithCapacity:0];
    [globalVars setValue:@"M" forKey:@"gender"];
    [globalVars setValue:@"23" forKey:@"age"];
    [globalVars setValue:@"0" forKey:@"numberOfChildren"];
    


    Ce que je voudrais, c'est interpreter la string de conditions en utilisant les valeurs se trouvant dans le Dictionnary.

    Pour ce faire, j'ai pensé à utiliser un arbre binaire, qui ressemblerait à ça :
    Image utilisateur
    Je n'aurais alors plus qu'à le parcourir récursivement pour connaitre la valeur booléenne.

    Là ou je bloque, c'est au moment de construire l'arbre. J'aimerais pouvoir isoler les deux expressions principales et l'opérateur conditionnelle.
    Dans ce cas-ci, j'aimerais récupérer 3 chaines :
    ((gender == F) OR ((gender == M) AND (age > 18)))
    OR
    (children > 3)

    Je pourrais ansi remplir l'arbre récursivement.

    Avez-vous une idée de comment faire pour isoler ces 3 chaines de caractères ? Bien sur ceci n'est qu'un exemple, cela doit fonctionner pour n'importe quelle condition.
    Y a-t-il une autre solution plus simple que d'utiliser un arbre binaire ?

    Merci d'avance
    • Partager sur Facebook
    • Partager sur Twitter

    [iOS] Evaluer des conditions dans une chaine de caractères

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown