extern float在applicationwillenterforeground之后保留以前的值

时间:2017-02-03 09:18:13

标签: ios objective-c extern

我在Global.h标头中定义了一些外部变量,并包含在我的一些视图中,以便轻松处理一些小数据。

applicationWillEnterForeground被解雇后启动应用程序,我设置了一个函数,要求NSURLConnection更新一些api数据,这些数据可能在应用程序离开时发生了变化。然后我相应地更新一些变量。

所有这些都发生在AppDelegate

然后我调用NSNotificationCenter来更新在MainController.m中显示此变量的标签。通知有效,方法被调用但var具有先前的值。

奇怪的是,尽管在ViewController中更新了var(我可以在日志中看到它,使用调试器并逐步移动),但它仍然具有旧值,并且它会影响我的计算。

在MainController.m中根本没有声明var,因此它不是本地实例。

如果应用程序没有进入后台然后再运行,那么一切都按预期工作,这让我觉得MainController的已保存实例中的某些内容会导致问题。

有关于此的任何想法吗?

1 个答案:

答案 0 :(得分:0)

好的,重新审视了愚蠢。

我实际上是在AppDelegate中声明var,这使得它成为本地的var,因此全局在MainController中正确地保留了它以前的值 删除AppDelegate.h和AppDelegate.m中的引用后,它可以正常工作。