0

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

我有一个与SQLite3数据库一起使用的应用程序,我想在应用程序中使用数据库,每次UIViewController我都从数据库中再次加载数据。结果是应用程序在某些视图中运行有点慢,而在其他视图中运行得更慢。

所以,我的问题是,如何使用SQLite3数据库?最好的方法是在一个of中加载SQLite3数据库还是从它自己的应用程序中工作,每次调用数据库并保存在其中?NSMutableArrayNSMutableDictionary's

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

非常感谢你。

4

1 回答 1

3

这在很大程度上取决于您的数据的性质,但是当我使用数据库时,通常是因为我有足够的数据,我宁愿不占用宝贵的内存,因此我倾向于根据需要从数据库中检索数据它,视图控制器到视图控制器。NSArray内存是 iOS 设备上比较稀缺的资源之一,所以在决定愉快地将数据保存在/之前要小心NSDictionary

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

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

但是,回到您的问题,如果您的应用程序运行缓慢,您可能需要提交一个不同的问题,概述数据的确切性质并概述您所遭受的性能损失的性质,我相信我们可以尝试来帮助你。

于 2012-11-10T17:18:00.157 回答