我正在开发一个小型iOS项目,我偶然发现了变量范围问题。
我需要的是一个在启动时初始化的对象,并且在应用程序关闭之前可供所有控制器使用。
该对象将保存从数据库(sql)或本地存储加载的数据 - 我不是100%确定在此处做什么。
我需要所有viewControllers一直访问该数据保持对象,我需要在应用程序进入后台时保留该对象。
这有可能实现吗?如果,那我该怎么做?
对于简单变量,我知道我可以使用外部变量,但它是否也适用于完整的对象?
感谢您的回答, 塞巴斯蒂安
答案 0 :(得分:3)
这是这里比较常见的问题之一。我建议stay away from extern
variables and singletons,请my answer for this related question和this sample Xcode project寻求更好的解决方案。 (示例项目目前非常简单,我稍后会添加更多常见方案。)
答案 1 :(得分:1)
可能的初始化点可能是您的应用委托代理的didFinishLaunching:withOptions:
方法,还是为时已晚?您还可以通过应用程序委托引用数据(如[[UIApplication sharedApplication] delegate]
)。 编辑:为了清楚,可以做,但我不建议以这种方式存储和访问任意数据。
您还可以使用外部参考引用对象,如extern NSString *gGlobalString;
中所示。但是,您需要一个安全的初始化位置。单身人士可能是更好的解决方案。