抱歉,如果以前没有问过,我对此问题没有任何疑问,我是Obj-C的新手,所以请耐心等待。提前致谢。
我有一个使用SQLite3
数据库的应用程序,我想使用该应用程序内部的数据库,在每个UIViewController
中,我都从数据库中再次加载数据。结果是该应用程序在某些视图中的工作速度有点慢,而在另一些视图中的工作速度则有些慢。
所以,我的问题是,如何使用SQLite3
数据库?最好的方法是每次调用数据库并将其保存在SQLite3
的NSMutableArray
内或从自身的应用程序中工作时将NSMutableDictionary's
数据库加载吗?
如果我使用字典的NSMutableArray
,如何知道何时在应用程序中保存数据?
非常感谢你。
最佳答案
这在很大程度上取决于您的数据的性质,但是当我使用数据库时,通常是因为我有足够的数据,我不想用完宝贵的内存,因此我倾向于根据需要从数据库中检索数据它,查看控制器以查看控制器。内存是iOS设备上较为稀缺的资源之一,因此在决定将数据巧妙地保存在NSArray
/ NSDictionary
中之前,请务必小心。
显然,最好不要在整个应用程序中乱扔SQL代码,因此,如果可能的话,您可能希望将所有数据检索封装在一个类中。这样,您可以根据需要在以后的某个日期更改数据存储/检索机制,而不必在整个程序中更改代码。
根据您的观察,应用程序从数据库中检索数据有点慢,这很奇怪,因为从数据库中检索数据通常超级快。我遇到性能问题的唯一时间是在数据库中存储BLOB对象(例如,图像的PNG / JPG表示形式)时。因此,现在,除非要处理微小的缩略图图像,否则将图像存储在Documents
文件夹中,数据库将仅保留这些图像文件的路径。
但是,回到您的问题上,如果您的应用程序运行缓慢,则可能要提交一个不同的问题,概述数据的确切性质并概述您所遭受的性能影响的性质,我敢肯定,我们可以尝试帮你