2015-10-27 101 views
0

我有,我想翻转布尔值没有做这样的程序:翻转布尔值

@property (nonatomic, assign) BOOL *boolValue; 

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

有没有我可以用它来切换值,而不使用这样的方法?

+0

[相关](http://stackoverflow.com/questions/541289/objective-c-bool-vs-bool);看起来像你可以只是'boolValue^= 1'。 – Kenney

+0

肯尼有正确的想法。至少,对于第二条语句,你可以使用'else'。 – brandaemon

回答

3

这里有几个错误。

  1. 不要让财产BOOL *,使它只是一个BOOL
  2. 切勿检查BOOL值直接对YESNO。切换BOOLboolValue = !boolValue;完成。

您的代码就变成了:

@property (nonatomic, assign) BOOL boolValue; 

boolValue = !boolValue; // "flip" the BOOL value 

顺便说一句 - 对于点#2你应该写这样if声明是这样的:

if (boolValue) { // is it YES? 

或:

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

但无论是需要翻转价值。

+0

好的谢谢:) – av993