0

在我的实例方法中,想将 BOOL 参数与静态变量的内容进行比较,例如:

- (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)

这样做的正确方法是什么?

4

5 回答 5

5

由于BOOL是原始(或标量)类型,而不是类,您可以直接将其与==

if ([someString isEqualToString:prevSomeString] && actualValuesOnly == prevActualValuesOnly) 
于 2012-10-26T07:55:57.997 回答
3

布尔变量与 == 符号而不是 isEqual 进行比较

if(Bool1 == Bool2){

    // do something here}
于 2012-10-30T08:43:47.250 回答
1

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

于 2012-10-26T08:42:13.547 回答
1

这里提到的解决方案并不是比较 2 个 BOOL 值的最安全方法,因为 BOOL 实际上只是一个整数,因此它们可以包含的不仅仅是 YES/NO 值。最好的方法是将它们异或在一起,如下所示:https ://stackoverflow.com/a/11135879/1026573

于 2015-03-11T19:41:09.220 回答
0

正如 Matthias Bauch 所建议的,

只需使用==运算符进行比较,即

if (BOOL1 == BOOL2)   
{   
    //enter code here
}
于 2012-10-26T08:44:41.897 回答