【问题标题】:Declaring a boolean : Default value声明一个布尔值:默认值
【发布时间】:2013-07-05 16:31:53
【问题描述】:
BOOL isChecked;

我这样声明布尔值。

它的默认值为NO吗?或者它的默认值是多少? [有吗?]

我应该始终在代码中自己将值设置为 YES 还是 NO?

【问题讨论】:

  • 哎呀,这是一个错字*

标签: ios objective-c boolean


【解决方案1】:

BOOL 不是对象,因此您的示例代码声明了一个不指向任何地方的指针。我想你的意思是: BOOL isChecked;

是的,您应该自己初始化它。在某些情况下(全局变量、实例变量),默认初始值将是 NO (0),但在其他情况下(局部变量)它将是未定义的。

【讨论】:

  • 除了“globals”和“locals”还有其他作用域,例如当变量是实例变量时,它也会被初始化为0NO)。跨度>
【解决方案2】:

通常您不会创建指向 BOOL 的指针。因为它是一个指针,所以它的默认值是nil。在您分配它之前,它实际上并不指向 BOOL,因此没有默认值。

你真的想要BOOL isChecked;,它的默认值是NO

【讨论】:

  • 怀疑是,如果我不关心,那么ischecked 的价值是什么?
  • 如果它是一个实例变量,你很好,如果它是本地的,你可以(并且应该)声明一个默认值。
【解决方案3】:

如果您要声明一个属性,那么它将有一个默认值 NO。否则如果它是一个局部实例变量,那么你就无法推测它的值。 :)

【讨论】:

    【解决方案4】:

    如果 BOOL isChecked 是属性或 iVar,则默认值为 NO。但是如果它是一个局部变量,那么这个值就会有些垃圾。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-23
      • 2014-08-22
      • 1970-01-01
      • 2012-10-29
      • 2015-01-11
      • 2020-05-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多