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

您应该使用 isEqualToString: 来比较 NSString 对象。

正如苹果文档指出的那样:

- (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)一个对象
于 2012-11-23T04:06:21.270 回答