简体   繁体   中英

Comparing two BOOL values

In my instance method, would like to compare a BOOL parameter with the content of a static variable, for instance:

- (NSArray*)myMethod:(NSString*)someString actualValuesOnly:(BOOL)actualValuesOnly {
static NSString *prevSsomeString;
static BOOL prevActualValuesOnly;
static NSArray *prevResults

if ([someString isEqualToString:prevSomeString] && 
              ([actualValuesOnly isEqual: prevActualValuesOnly]) 
               // HOW TO COMPARE THESE TWO BOOLEANS CORRECTLY?? 
    { return prevResults; }// parameters have not changed, return previous results 
else { } // do calculations and store parameters and results for future comparisons)

What would be the correct way to do this?

由于BOOL是原始(或标量)类型,而不是类,因此可以直接将其与==进行比较

if ([someString isEqualToString:prevSomeString] && actualValuesOnly == prevActualValuesOnly) 

Boolean variable is compare with == sign instead of isEqual

if(Bool1 == Bool2){

    // do something here}

布尔值与==符号而不是等号进行比较:

The solutions mentioned here are not the safest way to compare 2 BOOL values, because a BOOL is really just an integer, so they can contain more than just YES/NO values. The best way is to XOR them together, like detailed here: https://stackoverflow.com/a/11135879/1026573

As Matthias Bauch suggests,

Simply do the comparison using == operator ie

if (BOOL1 == BOOL2)   
{   
    //enter code here
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM