我很想使用 int
,并设置 0 == NO
、1 == YES
以及其他任何内容 ==不明确的。
显然,有一百万种方法可以做这样的事情,但对您来说最好的方法是什么?我能想到的问题包括简单性和内存占用(例如,如果我有很多这些怎么办?)。
另一种方法是使用两个 BOOL,一个用于 isDefined
,一个用于 value
另一种方式,
typedef enum { CPStatusUndefined, CPStatusAvailable, CPStatusUnavailable } CPStatus;
编辑,用例是:
我有一个很难计算的是/否属性。当它被检查时,它会被频繁地检查(通过 UIMenuController
,经常),但除非用户选择它,否则它永远不会被检查。我选择处理这个问题的方式是三型变量。第一次检查时,如果未定义,则计算是/否值并返回它,之后只返回是/否值。
最佳答案
使用枚举。在 Objective-C 中,它们的工作方式就像在 C/C++ 中一样
typedef enum {
No = 0,
Yes,
Other
} tri_type;
tri_type myVar = No;
if( myVar == Yes || myVar == Other ) {
// whatever
}
关于objective-c - 在 Objective-C 中实现真/假/未定义三分变量的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4295316/