2010-08-07 71 views
0

我对SQLite有一些疑问...我的应用程序只使用一个表(封装在数据逻辑类中)来存储小数据,连接打开在didFinishLaunchingWithOptions并在applicationWillTerminate中完成(是的,我知道在iOS4中applicationWillTerminate只有在必要时才由iSO调用,但我在每次数据更改时都在数据库上写入)。iPhone和SQLite:如何处理多个类的数据库连接?

现在我必须添加第二个表(和相对类),它将存储不同的数据(两个表之间没有连接)和正常大小(每天大约1-2行)。

我想过应用单例模式来共享连接和语句,但是我为了性能原因阅读它,建议使用类本地变量来保存连接。

那么最佳做法是什么?单身还是两个打开的连接? 对于我的情况,你会推荐什么解决方案?

谢谢

+0

对于这样一个简单的数据库,手工编写SQLite代码是完全浪费时间。使用CoreData。简单得多,很可能快得多,而且维护和发展容易得多。 – bbum 2010-08-07 18:50:29

+0

请添加为答案。 – 2010-08-07 20:08:06

回答

1

对于这样一个简单的用法,@Eiko提到的一个单例可能是正确的答案。

但是,这一切都提出了一个问题:为什么你不使用核心数据?

正确使用SQLite实际上非常困难,我看到许多非常有才华/有经验的工程师在没有意识到的情况下完全错误地认为它是错误的。更糟糕的是,扩展现有的实现更加困难。增加并发性实际上是确实硬直接SQLite(和核心数据工程师已经花费了大量的精力和应用大量的专业知识来正确支持SQLite的顶部并发)。

对于如此简单的使用,Core Data不会很难学习,它会为您提供一个更坚实和多功能的代码库。

2

存储在同一个数据库中的单身我。

少量数据不应该在短时间内成为性能瓶颈。

或者,当然,与CoreData一起。 :-)