我正在开发一个在FMDB
的帮助下使用sqlite数据库的iOS应用程序。我曾经使用过Core Data
,但是一次插入5000个项目的速度很慢。事务FMDB
使得这样的插入更快!
此外,我需要一些机制,可以在更新sqlite表中的某些项时通知我的视图控制器。 NSFetchedResultsController
是我的解决方案,但由于我使用FMDB
,我无法再使用NSFetchedResultsController
。
当sqlite表更新时是否有任何通知方法?
答案 0 :(得分:1)
我的建议是恢复核心数据。您应该解决插入性能问题,而不是降低到数据库级别,并且必须重新访问数据模型设置的各种更复杂的机制。您的具体问题就是一个例子。
要优化插入速度,请参考众多有用的SOF答案。正如已经指出的那样,为您的数据类型找到正确的批量大小是关键。
但是,无论您的优化如何,您都可以利用Core Data框架在后台执行这些密集型操作。这不会影响您的应用程序的可用性,大概甚至比使用FMDB的0.7秒插入更少。
答案 1 :(得分:0)
我一直在寻找一个解决方案。我想知道为什么我早些时候没有找到它。
我现在的选择是YapDatabase。我不知道它的弱点,但这个图书馆有很多很棒的东西:
观看次数允许您排序,分组和放大过滤您的数据。完美的 tableViews,collectionViews等。他们甚至提供 NSFetchedResultsController样式更新,以便于动画 对tableViews / collectionViews的更改。