【问题标题】:int value still remain the same when UIViewController dismissed iOS当 UIViewController 关闭 iOS 时,int 值仍然保持不变
【发布时间】:2015-03-23 04:30:14
【问题描述】:

我举个例子:

我正在使用两个视图控制器,我们将其命名为 Home 和 Sales。首先,我使用推送从主页导航到销售。在销售视图控制器中,我已经全局声明了一个 int 值并将其分配为零。像这样:

int example_int = 0;

之后,Sales View Controller 中进行了一些处理,example_int 的值发生了变化,例如它的值为 2。接下来,它使用 pop 导航回 Home。出于测试目的,我导航回 Sales 并且我 NSLog example_int,它给出了相同的值 2。

这最初给了我一个问题。但我已经通过使用 func: viewWillDismiss 并将 example_int 分配给 0(默认值)来解决它。所以现在,我只是好奇这里发生了什么。谢谢。

【问题讨论】:

  • 您可以在 viewDidDisappear 或 viewDidUnLoad 处将 example_int 值设置为 0。每次您进入销售视图时将初始值设为 0...如果您弹出某个视图,则分配的值仍然存在。 .for object.If u push 然后这些值将重新分配给默认值..比如 0...!
  • 全局变量的生命周期将贯穿整个应用程序的生命周期。如果你想要一个与销售视图控制器实例关联的 var,你应该使用实例 var 来保存数据。

标签: ios objective-c int


【解决方案1】:

全局变量将在整个应用程序生命周期中持续存在,如果 example_int 变量的使用仅限于销售视图,那么在这种情况下,您应该创建 example_int 作为销售视图控制器的成员变量。如果需要将 example_int 变量保持为全局变量,那么在这种情况下,您需要根据您的要求将 example_int 的值重置为 0(在您的情况下,在销售视图控制器的 viewDidDisappear 或 viewDidUnLoad 方法中)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-14
    • 2012-01-30
    • 2016-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多