-3

if else を使用して条件を確認していますが、常に else を実行します

int mytestcount=rowCount;
NSLog(@"My Test ROw Count IS %d",mytestcount);


if (mytestcount=0) {


    NSLog("No Data To Upload");

}


else {


    [Coffee getInitialDataToDisplay:[self getDBPath]];



}

私のifがtrueの場合、elseも実行します。rowCountが0の場合は理由がわかりません

4

4 に答える 4

1

次のように別の = 記号を追加する必要があると思います。

if (mytestcount==0)
于 2012-09-06T07:36:53.010 に答える
0

Youステートメント(mytestcount = 0)は、実際には、に割り当て0てからmytestcount、の値をブール式として使用します。mytestcountこれは、の値が割り当てられているため、常にfalseになります0

これは非常に一般的なタイプミスであり、ほとんどのコンパイラはこれを検出し、このパターンを認識したときに警告メッセージを出力できます。これは、ほとんどの場合、その動作を意図していないためです。

gccを -Wall -Werrorで実行することを検討する必要があります。これにより、コンパイラがこれらおよび他の同様の間違いの一般的なパターンを確認した場合にエラーがスローされます。

于 2012-09-06T07:42:54.143 に答える