2012-11-23 34 views
0

可能重複:
Comparing Strings in Cocoa不能執行邏輯的NSString *

我需要上NSString*變量進行的邏輯。

如果我做了以下正常工作:

my_label_3.text = local_db_user.lifetime_subscription; 

在UI的標籤被填充與文本,True

但下面的回報NO

local_db_user.lifetime_subscription == @"True"  

什麼代碼我用這個僞代碼:

if local_db_user.lifetime_subscription == True 
    do this 
else 
    do this other thing 

我的表,在調試過程中,對local_db_user.lifetime_subscription顯示:

{NSString * | 0x764e210} "True" 

回答

0

你應該則應使用isEqualToString:到NSString對象之間的比較。

作爲Apple doc指出:

- (BOOL)isEqualToString:(NSString *)aString 

返回一個布爾值,指示一個給定的字符串是否等於 於使用文字基於Unicode的比較接收機。

所以回答你的問題,你的代碼應該是這樣的:

if ([local_db_user.lifetime_subscription isEqualToString:@"True"]) { 
    // is equal 
} 
else { 
    // is different 
} 
+0

感謝所有。我發現人們發現這是一個確切的重複。那麼我希望它仍然是可見的,因爲經過大量搜索之後,我從未找到我的答案。 - 我喜歡。 :-)再次感謝。 – pdschuller

+0

嘿@pdschuller,您的歡迎!正如你所看到的,我們很樂意提供幫助!祝你好運 –

1
if([local_db_user.lifetime_subscription isEqualToString:@"True"]) 
{ 
     //do the task here 
} 
else 
{ 

} 
0

使用等於運算符(==),這是檢查內存地址比較對象。 所以比較,你必須使用的NSString對象

  • (BOOL)isEqualToString:(的NSString *)ASTRING;

方法。
你自己的(自定義類)對象必須覆蓋下面的方法。

  • (BOOL)isEqual:方法(ID)anObject