对象 return iOS 中的空描述
object return empty description in iOS
你好,我正在做这样的事情。
NSString * fblink=[dm.commonDataArray valueForKey:@"fb_link"];
if(![fblink isEqual:[NSNull null]]||![fblink isEqualToString:@""]||![fblink length]<=0)
{
[fb_button setImage:[UIImage imageNamed:@"ico_user_fb"] forState:UIControlStateNormal];
[fb_button addTarget:self
action:@selector(buttonFBTouch:)
forControlEvents:UIControlEventTouchUpInside];
}else{
[fb_button setImage:[UIImage imageNamed:@"ico_fb_red_gray"] forState:UIControlStateNormal];
}
当我在我的日志中键入 fblink
时,它显示 (lldb) po fblink
<object returned empty description>
但我的 if 条件仍然为真并进入内部而不是进入其他部分。
我该如何解决这个问题?如果 return 描述为空,我不想执行 if 条件为真部分。我如何检查这种情况?请帮我
谢谢
我认为 fblink
不是 null
而是一个空字符串。因此,您的 ![fblink isEqual:[NSNull null]]
变为 true 并且您的 if statement
被执行。仅检查以下条件:
if(![fblink isEqualToString:@""]||![fblink length]=0)
问题出在你的 if 条件上。 fblink
是 nil
,你正在检查 nil 等于 [NSNull null]
所以这个案例失败了,你反转了结果所以它变成了 true 并进入这个 if case.
如果我们扩展您的 if 案例,它将变为:
if(![nil isEqual:[NSNull null]]||![nil isEqualToString:@""]||![nil length]<=0)
{
}
变成
if(!false||!false||!true) // which evaluates to true, you are using ||, so if any one condition is true, it will go inside of the if case
{
}
您需要将 if 大小写更改为:
if([fblink isKindOfClass:[NSString class]] && ![fblink length]<=0)
{
}
else
{
}
您必须更改 || (或)条件到 &&(和)条件。
试试这个:
if(![fblink isEqual:[NSNull null]]&&![fblink isEqualToString:@""]&&![fblink length]<=0 )
{
//your code
}
else
{
// your code
}
你可以试试.....
if(![fblink isEqual:[NSNull null]]&&![fblink isEqualToString:@""]&&![fblink length]<=0)
{
//your code here .......
}
else
{//your code here ...}
你好,我正在做这样的事情。
NSString * fblink=[dm.commonDataArray valueForKey:@"fb_link"];
if(![fblink isEqual:[NSNull null]]||![fblink isEqualToString:@""]||![fblink length]<=0)
{
[fb_button setImage:[UIImage imageNamed:@"ico_user_fb"] forState:UIControlStateNormal];
[fb_button addTarget:self
action:@selector(buttonFBTouch:)
forControlEvents:UIControlEventTouchUpInside];
}else{
[fb_button setImage:[UIImage imageNamed:@"ico_fb_red_gray"] forState:UIControlStateNormal];
}
当我在我的日志中键入 fblink
时,它显示 (lldb) po fblink
<object returned empty description>
但我的 if 条件仍然为真并进入内部而不是进入其他部分。
我该如何解决这个问题?如果 return 描述为空,我不想执行 if 条件为真部分。我如何检查这种情况?请帮我 谢谢
我认为 fblink
不是 null
而是一个空字符串。因此,您的 ![fblink isEqual:[NSNull null]]
变为 true 并且您的 if statement
被执行。仅检查以下条件:
if(![fblink isEqualToString:@""]||![fblink length]=0)
问题出在你的 if 条件上。 fblink
是 nil
,你正在检查 nil 等于 [NSNull null]
所以这个案例失败了,你反转了结果所以它变成了 true 并进入这个 if case.
如果我们扩展您的 if 案例,它将变为:
if(![nil isEqual:[NSNull null]]||![nil isEqualToString:@""]||![nil length]<=0)
{
}
变成
if(!false||!false||!true) // which evaluates to true, you are using ||, so if any one condition is true, it will go inside of the if case
{
}
您需要将 if 大小写更改为:
if([fblink isKindOfClass:[NSString class]] && ![fblink length]<=0)
{
}
else
{
}
您必须更改 || (或)条件到 &&(和)条件。
试试这个:
if(![fblink isEqual:[NSNull null]]&&![fblink isEqualToString:@""]&&![fblink length]<=0 )
{
//your code
}
else
{
// your code
}
你可以试试.....
if(![fblink isEqual:[NSNull null]]&&![fblink isEqualToString:@""]&&![fblink length]<=0)
{
//your code here .......
}
else
{//your code here ...}