ios - 对象在 iOS 中返回空描述

标签 ios nsstring

你好,我正在做这样的事情。

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 条件仍然变为真并进入内部而不是进入其他部分。

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

最佳答案

问题出在您的 if 条件上。 fblinknil,你正在检查 nil 是否等于 [NSNull null] 所以这种情况失败了,你反转了结果所以它变成了 true 并且进入这个 if 案例。

如果我们扩展您的 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 case 更改为:

if([fblink isKindOfClass:[NSString class]] && ![fblink length]<=0)
{
}
else
{
}

关于ios - 对象在 iOS 中返回空描述,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32880012/

相关文章:

javascript - 禁用 "hold press"以在移动设备上缩放

ios - presentViewController 在 Swift 中不工作

cocoa-touch - 在 iPhone 上选择号码的最佳用户界面?

android - 我如何管理 NSMutableArray 内存

c++ - NSString 弱持有 std::string 的 const char *

ios - 将属性应用于 iOS 中的文本

ios - IOS/Linux 应用程序中的通信架构选择?

iphone - iphone NSString 的问题

ios - 为其轮廓创建 Box 后 UITextView 的大小和位置错误

objective-c - 日期格式帮助