我在Global.h标头中定义了一些外部变量,并将其包含在我的一些视图中,以便轻松处理一些小数据。
在applicationWillEnterForeground
被激活以启动应用程序后,我设置了一个函数,要求NSURLConnection
更新一些api数据,这些数据可能在应用程序不在时发生了更改。然后我相应地更新了一些var。
所有这些都发生在AppDelegate 中
然后我调用一个NSNotificationCenter
来更新一个标签,该标签在MainController.m中显示这个var。通知有效,方法被调用,但var有以前的值。
奇怪的是,尽管在ViewController中更新了var(我可以在日志中看到它,使用调试器并逐步移动),但它仍然有旧值,这会打乱我的计算。
var在MainController.m中根本没有声明,所以它不是本地实例。
如果应用程序没有进入后台然后启动,那么一切都按预期工作,这让我觉得MainController的已保存实例中的某些东西导致了问题。
对此有什么想法吗?
好吧,愚蠢再次出现。
实际上,我在AppDelegate中声明了var,这使其成为本地var,因此全局变量在MainController中正确地保持了它以前的值在删除AppDelegate.h和AppDelegate.m中的引用后,它正常工作。