来自非SQL背景,过去几天我一直很难吸收SQLite3。有没有人使用任何SQLite3包装API获得任何好结果?他们可靠地工作吗?哪个最好?我也听到关于Core Data进入iPhone的嗡嗡声。不确定这些信息是否值得信赖,但也许你们中的一些人知道:在某些时候会有iPhone的核心数据吗?
答案 0 :(得分:4)
FMDB易于使用,并将一些SQLite肮脏的东西从您身上抽象出来,但仍会暴露SQL。
我在项目中使用它,但是将其子类化以添加我自己的部分OO图层。这种方法的优点是,如果我需要更高的速度或我没有预见到的东西(例如触发器),我可以实现它。使用Core Data,没有“绕过”可用,我不得不依赖Core Data的优化,内存使用等。
另一个不同之处是核心数据将允许您的应用完全保留OO。使用FMDB或其他数据库解决方案,您始终与数据库的组织紧密相关。这是一个设计决定,而不是你以后可以改变的。
答案 1 :(得分:3)
如果你现在才开始,我会使用核心数据。
我去年花了一些时间看着当时的各种包装纸。我最后没有使用它们中的任何一个。
我认为NDA在我看的时候仍然存在,所以我可能错过了最好的,但我发现大多数都是非常薄的包装纸。对于我的目的,这意味着它添加了一个外部依赖,没有节省太多的输入,我可能仍然不得不潜入使用sqlite函数调用有时无论如何。只是看起来不值得。
答案 2 :(得分:2)
为什么不使用3.0 SDK定位CoreData?
如果由于某种原因你需要支持2.x,你应该看看SQLitePersistentObject。它很慢并且有一些错误,但它非常容易使用。遗憾的是,作者不再积极发展。
答案 3 :(得分:1)
此外: 前段时间,通过一个小样本项目(2.x),我使用了fmdb。据我记得它很容易使用。但是,它需要SQL知识。