应用程序启动时读取属性列表的模式,在关闭时写入

时间:2013-04-04 22:23:53

标签: iphone ios cocoa-touch

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

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

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

1 个答案:

答案 0 :(得分:5)

这取决于你的应用程序想要对加载的数据做什么?如果需要访问项目中的任何位置,可以创建singleton pattern(例如SharedData类),获取静态实例

e.g: [SharedData sharedInstance]

首先获得此实例,您可以从属性文件中加载数据。

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

- (void) saveData;

并使用以下方法调用它:

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

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

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