|  |      1wang1986      2011-09-07 18:17:08 +08:00 牛刀? | 
|  |      2levey      2011-09-07 18:19:07 +08:00 CoreData比较麻烦,建议轻量级的sqlite封装。 | 
|  |      3sharkli      2011-09-07 19:55:50 +08:00 我用了一段时间CoreData以后发现实在是麻烦。现在已经改成FMDB来操作db了。 | 
|  |      5dongsheng OP @sharkli 看这篇文章时看到过这个库 http://inessential.com/2010/02/26/on_switching_away_from_core_data 刚才想起core data还有个优点是在内存里操作数据,不是实时写入,这样对省电有好处。不知道FMDB能不能在内存中操作数据,改天研究下。 | 
|  |      6gonefish      2011-09-07 20:20:00 +08:00 1.直接写的话,代码真是一堆。不过有一个查询编辑器,你可以设定条件,然后通过一个方法用占位符式把变量填进去。 2.太复杂的升级,要手动写吧。 | 
|  |      8keakon      2011-09-07 20:23:37 +08:00 @dongsheng 初学Core Data时曾经做过一个测试,批量插入、更新和删除数据时,它比SQLite慢2个数量级。而我经常需要批量更新几百条数据,差距基本上就是秒和毫秒级的,于是果断放弃了。 | 
|  |      9gonefish      2011-09-07 21:04:10 +08:00 Core Data和SQLite根本就不是一个东西,比较速度没有意义。再说SQLite只是Core Data的一个持久介质。 | 
|  |      10Mattsive      2011-09-07 21:50:11 +08:00 当初看了一段 Core Data 文档后果断改用 FMDB 的飘过,整个项目就没在数据处理上花什么功夫。 | 
|  |      11dongsheng OP 难道没有对Core Data的正面评价?大家好像都是直接跳过Core Data这个方案了。。。 | 
|  |      12dongsheng OP @keakon Core Data慢不奇怪,但真能差出数量级来?你是用NSFetchedResultsController还是直接读出数据集的?前者是lazy loading,性能不差的。 | 
|  |      13keakon      2011-09-07 23:14:43 +08:00 @dongsheng 直接操作啊,更新数据还要lazy干啥…印象中操作1000个花了4秒,而sqlite不到0.1秒。于是我立刻理解iReadG标记已读时为什么会阻塞半天主线程了… | 
|  |      14Kai      2011-09-07 23:45:23 +08:00 官方有说过这样一句: Core Data is not a relational database or a relational database management system (RDBMS). | 
|  |      17wtl      2011-09-08 10:13:12 +08:00 |