0

当我的应用程序使用属性列表启动时,我需要将少量数据读入数组。在应用程序运行时,此数据可能会根据用户的操作而改变。当应用程序关闭时,我需要将数据写回文件。

从高层次的角度来看,我只是想知道这样做的最佳设计模式是什么?我的第一个直觉是简单地在 中声明一个数组,并在需要时appDelegate通过实例访问该数组。appDelegate然后最后,他applicationWillResignActive:方法将数据写回文件。

但是,有人告诉我在 appDelegate 中声明这样的变量是个坏消息,所以我想知道是否有人可以告诉我实现这一目标的最佳方法是什么。

4

1 回答 1

5

这取决于您的应用程序想要对加载的数据做什么?如果您需要访问项目中的任何地方,您可以创建一个单例模式(例如 SharedData 类),获取静态实例

e.g: [SharedData sharedInstance]

当你第一次得到这个实例时,你可以从你的属性文件中加载数据。

你应该创建一个实例方法,例如:

- (void) saveData;

并在以下方法中调用它:

- (void)applicationWillTerminate:(UIApplication *)application{
   [[SharedData sharedInstance] saveData];
}

- (void)applicationDidEnterBackground:(UIApplication *)application{
   [[SharedData sharedInstance] saveData];
}

如果您想在按下主页按钮时保存。但是必须保存数据的确切时间取决于应用程序工作流程。最好在修改存储数据的操作之后立即保存(可能使用后台线程)。

于 2013-04-04T23:25:20.833 回答