对象在iOS中返回空描述

use*_*169 3 nsstring 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];
}
Run Code Online (Sandbox Code Playgroud)

当我输入fblink我的日志时,它说(lldb) po fblink <object returned empty description>但我的 if 条件仍然成立并进入而不是进入其他部分。

我怎样才能克服这个问题?如果它返回空描述,我不想执行我的 if 条件 true 部分。我如何检查这种情况?请帮帮我谢谢

Mid*_* MP 5

问题在于您的 if 条件。fblinknil,您正在检查 nil 是否等于,[NSNull null]因此此案例失败,您反转结果,使其变为 true 并进入此 if 案例。

如果我们扩展您的 if 案例,它将变为:

if(![nil isEqual:[NSNull null]]||![nil isEqualToString:@""]||![nil length]<=0)
{
}
Run Code Online (Sandbox Code Playgroud)

哪个变成

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
{
}
Run Code Online (Sandbox Code Playgroud)

您需要将 if case 更改为:

if([fblink isKindOfClass:[NSString class]] && ![fblink length]<=0)
{
}
else
{
}
Run Code Online (Sandbox Code Playgroud)