2012-10-26 155 views
0

可能重複:
Understanding NSString comparison in Objective-C相等的字符串不相等?

心中已經遇到了奇怪的事情在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打印,在這兩個文本是完全一樣的,但我仍然總是負結束了......這是爲什麼?

+1

嘗試使用這種格式'[富isEqualToString:巴]'字符串比較,因爲玉的比較文字本身 –

回答

3

您應該使用[cell.textLabel.text isEqualToString:[_dropDownSelection1.elements[1] title]]來比較字符串。

+0

很奇怪。也嘗試這種方式。但結果仍然是相同的.. NSLog打印兩個值是相同的,但比較變得不利 – Datenshi

+0

你能告訴我們NSLog打印什麼? –

+0

現在一切正常,只是添加了我的答案。 – Datenshi

3

你在比較指針而不是字符串。

改爲使用IsEqual。

1

你不能像那樣比較它們。

請參閱識別和比較Objective-C docs上的字符串部分。

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"); 

} 
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"); 
}