【问题标题】:iOS: Check if boolean is nil (Objective-C)iOS:检查布尔值是否为零(Objective-C)
【发布时间】:2017-10-31 17:54:12
【问题描述】:

如果加载了子视图控制器,我正在控制台中检查:

po self.childVC.isViewLoaded 
<nil>

我对你们的问题是如何检查 boolean 是否为 nil ?

【问题讨论】:

  • 你做得对。 相当于 NO 如果你输入 po (BOOL)self.childVC.isViewLoaded 你会得到所需的结果。
  • &lt;nil&gt; 转换为NO 的简单方法是在前面添加一个双重否定感叹号命令。即po !!self.childVC.isViewLoaded。但正如其他人所说,在这种情况下 == NO 所以没有必要,除非它让你开心
  • 通过输入po 并打印任何包含0 的int 或包含NOBOOL 将打印出&lt;nil&gt;。我不知道为什么 lldb 会这样做,但它确实将 NO 或 0 打印为 &lt;nil&gt;

标签: ios objective-c iphone boolean


【解决方案1】:

这样检查怎么样?

如果假设布尔值可以为零,那么..

// Can check nil & NO for isViewLoaded
if (self.childVC.isViewLoaded != NO) {
    //blah
}

【讨论】:

    【解决方案2】:

    已经问过了。请检查此How to check if a BOOL is null?

    if (self.childVC.isViewLoaded != [NSNull null]) {
     }
    else {
    }
    

    谢谢

    【讨论】:

      【解决方案3】:

      LLDB:简单到p self.childVC.isViewLoaded

      代码: if (self.childVC.isViewLoaded) {//isViewLoaded = YES}

      【讨论】:

        【解决方案4】:

        BOOLYESNO。没有其他状态。

        要检查视图是否已加载,请添加以下代码,

        if (self.childVC.isViewLoaded && self.childVC.view.window) {
        
            // self.childVC is visible
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-04-02
          • 2022-09-23
          • 1970-01-01
          • 1970-01-01
          • 2016-08-22
          • 1970-01-01
          • 1970-01-01
          • 2019-08-07
          相关资源
          最近更新 更多