翻转BOOL值

时间:2015-10-27 00:20:36

标签: objective-c

我有一个程序,我想在不执行此操作的情况下翻转BOOL值:

@property (nonatomic, assign) BOOL *boolValue;

if (boolValue == YES) {
    boolValue = NO;
}
if (boolValue == NO) {
    boolValue = YES;
}

我是否可以使用一种方法来切换值而不使用这种方式?

1 个答案:

答案 0 :(得分:3)

你有几件事情错了。

  1. 不要将该属性设为BOOL *,只需BOOL
  2. 永远不要直接针对BOOLYES检查NO值。
  3. 切换BOOLboolValue = !boolValue;完成。
  4. 您的代码变为:

    @property (nonatomic, assign) BOOL boolValue;
    
    boolValue = !boolValue; // "flip" the BOOL value
    

    BTW - 对于第2点,你应该写下这样的if语句:

    if (boolValue) { // is it YES?
    

    或:

    if (!boolValue) { // is it NO?
    

    但两者都不需要翻转价值。