在我的实例方法中,想要将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)
这样做的正确方法是什么?
答案 0 :(得分:5)
由于BOOL
是基本(或标量)类型,而不是类,因此您可以直接将其与==
进行比较
if ([someString isEqualToString:prevSomeString] && actualValuesOnly == prevActualValuesOnly)
答案 1 :(得分:3)
布尔变量与==符号而不是isEqual
进行比较if(Bool1 == Bool2){
// do something here}
答案 2 :(得分:1)
布尔值与==符号而不是isequal:
进行比较答案 3 :(得分:1)
这里提到的解决方案并不是比较2个BOOL值最安全的方法,因为BOOL实际上只是一个整数,因此它们可以包含的不仅仅是YES / NO值。最好的方法是将它们混合在一起,如下所示:https://stackoverflow.com/a/11135879/1026573
答案 4 :(得分:0)
Matthias Bauch建议,
只需使用 == 运算符即
进行比较if (BOOL1 == BOOL2)
{
//enter code here
}