0

重複の可能性:
Cocoaの文字列の比較

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"
4

3 に答える 3

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

}
于 2012-11-23T03:49:44.617 に答える
0

NSStringオブジェクトと比較するには、isEqualToString:を使用する必要があります。

Appleのドキュメントが指摘しているように:

- (BOOL)isEqualToString:(NSString *)aString

リテラルのUnicodeベースの比較を使用して、指定された文字列がレシーバーと等しいかどうかを示すブール値を返します。

したがって、質問に答えるには、コードは次のようになります。

if ([local_db_user.lifetime_subscription isEqualToString:@"True"]) {
    // is equal
}
else {
    // is different
}
于 2012-11-23T03:41:21.143 に答える
0

等しい演算子(==)を使用してオブジェクトを比較すると、メモリアドレスがチェックされます。したがって、使用する必要があるNSStringオブジェクトを比較してください

  • (BOOL)isEqualToString:(NSString *)aString;

方法。
独自の(カスタムクラス)オブジェクトの場合、以下のメソッドをオーバーライドする必要があります。

  • (BOOL)isEqual:(id)anObject
于 2012-11-23T04:06:21.270 に答える