出於某種原因的說法我傳遞給我的if語句是不正確的,即使它應該是我的繼承人代碼:問題,如果一個聲明
if (currentAttribute == cBusName)
{
NSLog(@"currentAttribute == cBusName");
}
當前屬性和cBusName是一個都等於「既NSMutableStrings 1「,但NSLog永遠不會輸出控制檯中的字符串是有什麼我失蹤?
出於某種原因的說法我傳遞給我的if語句是不正確的,即使它應該是我的繼承人代碼:問題,如果一個聲明
if (currentAttribute == cBusName)
{
NSLog(@"currentAttribute == cBusName");
}
當前屬性和cBusName是一個都等於「既NSMutableStrings 1「,但NSLog永遠不會輸出控制檯中的字符串是有什麼我失蹤?
==
運算符正在比較那些對象是相同的對象(IE指向內存中的相同地址),而不是它們的值相同。
嘗試
if ([currentAttribute isEqualToString: cBusName])
{
NSLog(@"currentAttribute == cBusName");
}
其中比較值兩個字符串的,而不是他們在內存中的位置。
使用等號(==)運算符不能比較字符串對象 。 的原因是,任何嘗試 執行比較這種方式將 只是比較兩個字符串 對象是否位於相同的內存 的位置。讓我們一起來看看這款 通過一個例子:通過一個例子:
從http://www.techotopia.com/index.php/Working_with_String_Objects_in_Objective-C,搜索字符串
在此看到比較詳細的細節:http://www.techotopia.com/index。 php/Working_with_String_Objects_in_Objective-C#比較字符串 – 2010-11-04 06:54:49
+1,我只是寫這個。 。 。 – 2010-11-04 06:55:35
該死的,你揍我一拳... +1 – Scott 2010-11-04 06:56:09