等于弦不相等?

时间:2012-10-26 07:13:18

标签: objective-c ios nsstring

  

可能重复:
  Understanding NSString comparison in Objective-C

我在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打印出两者中的文字完全相同,但我仍然总是以负面...为什么会这样?

5 个答案:

答案 0 :(得分:3)

您应该使用[cell.textLabel.text isEqualToString:[_dropDownSelection1.elements[1] title]]来比较字符串。

答案 1 :(得分:3)

您正在将指针彼此进行比较,而不是字符串。

改为使用IsEqual。

答案 2 :(得分:1)

你不能那样比较它们。

请参阅Objective-C docs上的识别和比较字符串部分。

答案 3 :(得分: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");

}

答案 4 :(得分:0)

比较两个字符串的方法是isEqualToString:

您的代码就像这样

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

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