iOS:在应用程序启动时初始化对象,供所有控制器使用



我正在做一个小的iOS项目,我偶然发现了一个变量作用域的问题。

我需要的是一个在启动时初始化的对象,并且在应用程序关闭之前对所有控制器都可用。

该对象将保存从数据库(sql)或本地存储加载的数据-我还不能100%确定在这里该做什么。

我需要所有的viewControllers始终访问该数据保存对象,并且我需要在应用程序进入后台时保留该对象。

这有可能实现吗?如果,我该怎么做?

对于简单的变量,我知道我可以使用外部变量,但它也适用于完整的对象吗?

谢谢你的回答,sebastian

这是这里比较常见的问题之一。我建议远离extern变量和singleton,请参阅我对这个相关问题的回答和这个示例Xcode项目,以获得更好的解决方案。(示例项目目前还很简单,稍后我将添加更多常见场景。)

一个可能的初始化点可能是您的应用程序委托的didFinishLaunching:withOptions:方法,还是为时已晚?您也可以通过应用程序代理(如[[UIApplication sharedApplication] delegate])引用数据编辑:为了清楚起见,可以这样做,但我不建议以这种方式存储和访问任意数据。

也可以使用外部参照参照对象,如extern NSString *gGlobalString;中所示。不过,初始化需要一个安全的地方。单例可能是更好的解决方案。

相关内容

  • 没有找到相关文章

最新更新