在应用程序中使用SQLite数据库的最佳方式

时间:2012-11-10 17:00:20

标签: iphone objective-c ios sqlite

很抱歉,如果之前有人询问过,我找不到任何关于这个问题的问题,我是Obj-C的新手,请耐心等待。提前谢谢。

我有一个适用于SQLite3数据库的应用程序,我想在应用程序内部使用数据库,在每个UIViewController我再次从数据库加载数据。结果是应用程序在某些视图中的运行速度稍慢,而在其他视图中则更多。

所以,我的问题是,如何使用SQLite3数据库?最好的方法是将SQLite3数据库加载到NSMutableArray的{​​{1}}内,还是自己从应用程序开始工作,每次调用数据库并保存在其中?< / p>

如果我使用的是NSMutableDictionary's字典,我怎么知道何时将数据保存在应用程序中?

非常感谢。

1 个答案:

答案 0 :(得分:3)

这在很大程度上取决于数据的性质,但是当我使用数据库时,通常是因为我有足够的数据而不愿用掉宝贵的内存,因此我倾向于在我需要时从数据库中检索数据,查看控制器以查看控制器。内存是iOS设备上比较稀缺的资源之一,因此在决定以NSArray / NSDictionary轻率保存数据之前要小心。

显然,如果您的应用程序中没有SQL代码,那就更好了,所以如果可能的话,您可能希望将所有数据检索封装在一个类中。这样,您可以根据需要在以后更改数据存储/检索机制,并且您不必在整个程序中更改代码。

根据您的观察,应用程序从数据库中检索数据有点慢,这非常奇怪,因为从数据库中检索数据通常非常快。我唯一遇到性能问题的时候是我在数据库中存储BLOB对象(例如图像的PNG / JPG表示)。所以,现在,除非我处理微小的缩略图大小的图像,否则我会将图像存储在Documents文件夹中,数据库只会维护这些图像文件的路径。

但是,回到你的问题,如果你的应用程序很慢,你可能想提交一个不同的问题,概述数据的确切性质,并概述你遇到的性能影响,以及我&# 39;我相信我们可以帮助你。