我需要在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 :(得分:1)
if([local_db_user.lifetime_subscription isEqualToString:@"True"])
{
//do the task here
}
else
{
}
答案 1 :(得分:0)
您应该使用isEqualToString:来比较NSString对象。
正如Apple doc所指出的那样:
- (BOOL)isEqualToString:(NSString *)aString
返回一个布尔值,指示给定的字符串是否相等 使用基于Unicode的文字比较来接收接收器。
所以要回答你的问题,你的代码应该是这样的:
if ([local_db_user.lifetime_subscription isEqualToString:@"True"]) {
// is equal
}
else {
// is different
}
答案 2 :(得分:0)
使用等于运算符(==)比较对象,检查内存地址。 所以比较你必须使用的NSString对象
方法。
对于您自己的(自定义类)对象,必须覆盖以下方法。