0

可能重复:
了解 Objective-C 中的 NSString 比较

我在objective-c中遇到了奇怪的事情,我试图将cell.label与元素标题进行比较,它是字符串。确定它是否是我正在寻找的单元格。

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.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 回答
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 回答