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

ここで説明する解決策は、2 つの BOOL 値を比較する最も安全な方法ではありません。BOOL は実際には単なる整数であり、YES/NO 値以上のものを含めることができるからです。最良の方法は、ここで詳しく説明されているように、それらを XOR することです

于 2015-03-11T19:41:09.220 に答える
1

ブール値は isequal の代わりに == 記号で比較されます:

于 2012-10-26T08:42:13.547 に答える
0

マティアス・バウフが示唆するように、

==演算子を使用して比較を行うだけです。

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