2010-11-04 55 views
0

出於某種原因的說法我傳遞給我的if語句是不正確的,即使它應該是我的繼承人代碼:問題,如果一個聲明

if (currentAttribute == cBusName) 
    { 
     NSLog(@"currentAttribute == cBusName"); 
    } 

當前屬性和cBusName是一個都等於「既NSMutableStrings 1「,但NSLog永遠不會輸出控制檯中的字符串是有什麼我失蹤?

回答

11

==運算符正在比較那些對象是相同的對象(IE指向內存中的相同地址),而不是它們的值相同。

嘗試

if ([currentAttribute isEqualToString: cBusName]) 
{ 
    NSLog(@"currentAttribute == cBusName"); 
} 

其中比較值兩個字符串的,而不是他們在內存中的位置。

+0

在此看到比較詳細的細節:http://www.techotopia.com/index。 php/Working_with_String_Objects_in_Objective-C#比較字符串 – 2010-11-04 06:54:49

+0

+1,我只是寫這個。 。 。 – 2010-11-04 06:55:35

+0

該死的,你揍我一拳... +1 – Scott 2010-11-04 06:56:09