什么';在iPhone上使用sqlite的正确方法是什么?

什么';在iPhone上使用sqlite的正确方法是什么?,iphone,cocoa-touch,sqlite,Iphone,Cocoa Touch,Sqlite,你能给我一些关于在iPhone上使用sqlite的建议吗? 在我的应用程序中,我使用sqlite DB存储所有本地数据。可以使用两种方法在运行时检索这些数据 1、在初始化阶段将所有数据加载到内存中。(使用的内存越多,所需的数据库打开/关闭操作越少) 2、必要时读取相应记录,使用后释放占用内存。(良好的内存使用习惯,但需要更多的DB打开/关闭操作) 我更喜欢使用方法2,但不确定太多的DB打开/关闭操作是否会影响应用程序的效率。或者你认为我可以在应用程序启动时打开DB,在应用程序退出时关闭DB来“升

你能给我一些关于在iPhone上使用sqlite的建议吗? 在我的应用程序中,我使用sqlite DB存储所有本地数据。可以使用两种方法在运行时检索这些数据

1、在初始化阶段将所有数据加载到内存中。(使用的内存越多,所需的数据库打开/关闭操作越少)

2、必要时读取相应记录,使用后释放占用内存。(良好的内存使用习惯,但需要更多的DB打开/关闭操作)

我更喜欢使用方法2,但不确定太多的DB打开/关闭操作是否会影响应用程序的效率。或者你认为我可以在应用程序启动时打开DB,在应用程序退出时关闭DB来“升级”方法2吗


非常感谢你的建议

苹果似乎建议您避免在启动过程中预加载所有数据,以确保更快、更平稳地启动。假定您只应在用户需要时加载数据。

苹果似乎建议您避免在启动过程中预加载所有数据,以确保更快、更平稳地启动。假设您只应在用户需要时加载数据。

首先:使用FMDB访问SQLite

然后,创建您自己的单例“MyDB”类

每次需要数据库时,都要执行[MyDB instance]来获取FMDB实例

这样,你只有一个DB是打开的(在didFinishLaunching中),当你的应用程序退出时你关闭它

这无疑是在iPhone上使用SQLite的最佳方式


另一种选择是使用CoreData,当您从一个空数据库开始时,我发现这很有用,但是如果我有一组只读的数据,FMDB/SQLite最适合我。

首先:使用FMDB访问SQLite

然后,创建您自己的单例“MyDB”类

每次需要数据库时,都要执行[MyDB instance]来获取FMDB实例

这样,你只有一个DB是打开的(在didFinishLaunching中),当你的应用程序退出时你关闭它

这无疑是在iPhone上使用SQLite的最佳方式


另一个选择是使用CoreData,当您从一个空数据库开始时,我觉得这很有用,但是如果我有一组只读的数据,FMDB/SQLite最适合我。

Baswell,非常感谢您的建议。我用的是FMDB,非常好。非常感谢你的建议。我用的是FMDB,它很棒。是的,你说得对。现在我将毫不犹豫地遵守这条规则。谢谢你,伊凡斯。是的,你说得对。现在我将毫不犹豫地遵守这条规则。谢谢你,伊万斯。