【问题标题】:Change the value of a static variable [duplicate]更改静态变量的值[重复]
【发布时间】:2013-04-01 20:13:48
【问题描述】:

如何在 Objective-C 中更改静态变量的值?

这是否允许?

【问题讨论】:

  • 您的问题是什么variable=newValue; 不起作用?
  • @AnoopVaidya 它只是保留旧值而没有错误消息或任何东西。
  • @findusl:尝试覆盖类和静态变量。
  • @anoopvaidya 我需要它进行测试,但我无法控制实例化。我用谷歌搜索了更多,似乎您无法从其他文件更改静态,将其更改为 extern 并且现在可以使用。

标签: objective-c static-variables


【解决方案1】:

您使用= 运算符在静态变量可见的文件中分配一个值。

【讨论】:

  • 那行不通,对我来说它只是坚持原来的价值。
  • @findusl:听起来你试图做的是从 another 文件中更改静态变量,其中变量不可见。 “静态”在 C 中的意思基本上是“这个变量只在这个文件中可见”。静态变量在 Objective-C 中很常见——例如,单例通常是如何实现的。当其他文件需要设置变量时,提供了一个setter函数或方法。
  • 但是静态变量在另一个文件中是可见和可用的。就是无法改变。
  • @findusl:我很确定任何主流编译器都不是这种情况——这会违反 C 标准。没有看到你的代码很难说,但我猜你正在创建第二个不相关的变量,而不是看到文件的静态变量。例如,如果您在头文件中有static int x = 5;,则导入该头文件的每个文件都会有一个名为x 的静态变量,该变量与名为x 的任何其他文件的静态变量无关。
  • 可能就是这样。将解释结果,因为我想将其更改为不同的文件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-12-29
  • 1970-01-01
  • 1970-01-01
  • 2016-12-20
  • 2014-01-15
  • 1970-01-01
  • 2012-03-18
相关资源
最近更新 更多