Je suis tenté d'utiliser un int
, et de faire 0 == NO
, 1 == YES
, et toute autre chose == indéfini. Évidemment, il y a un million de façons de faire quelque chose comme ça, mais qu'est-ce qui vous semble le meilleur? Les préoccupations auxquelles je peux penser comprennent la simplicité et l'empreinte mémoire (par exemple, que faire si j'en ai beaucoup?).Meilleure façon d'implémenter une variable de trichotomie vrai/faux/indéfini dans objectif-c
Une autre façon est d'utiliser deux BOOL, un pour isDefined
, et un pour value
Une autre façon,
typedef enum { CPStatusUndefined, CPStatusAvailable, CPStatusUnavailable } CPStatus;
Modifier, le cas d'utilisation est la suivante:
J'ai oui/non propriété difficile à calculer. Quand il est en cours de vérification, on vérifie fréquemment (par UIMenuController
, SOUVENT), mais à moins que l'utilisateur sélectionne, il est jamais vérifié. La façon dont j'ai choisi de traiter cela est une variable de type tri. La première fois que vous vérifiez, si elle est indéfinie, vous calculez la valeur oui/non et la renvoyez, après quoi vous retournez la valeur oui/non.
@Kenny N'essayez pas d'être trop intelligent. Utilisez une énumération avec un nom agréable et significatif. – willc2
@Kenny, +1 pour les noms significatifs. – Lee