0

重複の可能性:
Objective-CでのNSString比較の理解

私はobjective-cで奇妙なことに遭遇しました。私は、cell.labelを文字列である要素titleと比較しようとしています。それが私が探している細胞であるかどうかを識別するために。

NSLog(@"%@", cell.textLabel.text);
NSLog(@"%@", [_dropDownSelection1.elements[1] title]);
if(cell.textLabel.text == [_dropDownSelection1.elements[1] title]){
    NSLog(@"Positive");
}
else{
    NSLog(@"Negative");
}

NSLogは、両方のテキストがまったく同じであると出力しますが、それでも私は常に否定的になります...それはなぜですか?

4

5 に答える 5

3

[cell.textLabel.text isEqualToString:[_dropDownSelection1.elements[1] title]]文字列を比較するために使用する必要があります。

于 2012-10-26T07:16:28.360 に答える
3

文字列ではなく、ポインタを相互に比較しています。

代わりにIsEqualを使用してください。

于 2012-10-26T07:16:37.207 に答える
1

そのように比較することはできません。

Objective-Cドキュメントの文字列の識別と比較のセクションを参照してください。

于 2012-10-26T07:16:40.753 に答える
0

これが私のために働いたコードです!理由はわかりませんが、変数を初期化しないと、上記のisEqualToStringを使用しても、動作させることができませんでした。

NSLog(@"CELL:%@", cell.textLabel.text);
NSLog(@"ELEM:%@", [_dropDownSelection1.elements[1] title]);
NSString *labl = cell.textLabel.text;
NSString *tit = [_dropDownSelection1.elements[1] title];

if([labl isEqualToString:tit])
{

    NSLog(@"Positive");
}
else{
    NSLog(@"Negative");

}
于 2012-10-26T08:09:37.813 に答える
0

2つの文字列を比較する方法はisEqualToStringです。

あなたのコードはこのようなものです

NSLog(@"%@", cell.textLabel.text);
NSLog(@"%@", [_dropDownSelection1.elements[1] title]);

if(cell.textLabel.text isEqualToString:[_dropDownSelection1.elements[1] title])
{
NSLog(@"Positive");
}
else
{
NSLog(@"Negative");
}
于 2012-10-26T08:48:45.373 に答える