0

iPhoneアプリからのユーザーテキスト入力を、宣言した静的配列のテキストと比較しようとしています。テキストが異なっていても、常に「true」を返します。strncmpを実行した後、両方のテキストフィールドを表示します。人間の目には、それらは私がフィールドに期待するものです。画面に戻ったdebugmsgは、値がどうなるかを示していますが、比較は常にtrueになっています。任意の提案をいただければ幸いです。ありがとう。

if (strncmp(SymbolEntered.text, 
[NSString stringWithCString:elements_table2[idx].element_symbol],2)==0)
{   
    DebugMsg.text = [NSString stringWithCString:"Correct answer"];
}
else 
{
    DebugMsg.text = [NSString stringWithCString:"Incorrect!"];
}

DebugMsg2.text = SymbolEntered.text;
DebugMsg3.text = [NSString stringWithCString:elements_table2[idx].element_symbol];
4

1 に答える 1

7

これは、 (なぜ使用するのですか?)NSStringの代わりに、大量の比較メソッドが実装されている で行う必要があります。では動作しません。CStringCStringstrcmpNSString

if([SymbolEntered.text isEqualToString:[NSString stringWithCString:elements_table2[idx].element_symbol]]) {
    DebugMsg.text = @"Correct answer";
} else {
    DebugMsg.text = @"Incorrect answer";
}

また、代わりに:

DebugMsg.text = [NSString stringWithCString:"Correct answer"];

あなたはこれを行うことができます:

DebugMsg.text = @"Correct answer";
于 2011-12-28T15:59:53.343 に答える