objective-c - 在 Objective-C 中实现真/假/未定义三分变量的最佳方法

标签 objective-c cocoa boolean

我很想使用 int,并设置 0 == NO1 == 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/

相关文章:

iphone - 如何在同一个 MPMoviePlayerController 中播放另一个视频?

objective-c - UItextFields 数据到 JSON

iphone - 在实现文件中重复类接口(interface)声明有什么意义?

swift - 根据最大的 subview 使用自动布局调整 super View 的大小

python - 计算列中连续真实值的数量

javascript - 有兴趣使用双 boolean 否定吗?

ios - 第一个函数执行完成后如何调用第二个函数?

xcode - Apple 沙盒和 AXUIElementRefs

Objective-C:EXC_BAD_ACCESS并且没有响应

java - 如何在类之间传递 boolean 值?