核心数据与iOS上的FMDB相结合

时间:2013-06-15 17:24:48

标签: ios core-data fmdb

我喜欢Core Data,并且很享受简单的数据库交易。但是我还需要做几个复杂的查询,我担心Core Data不会让这些查询变得容易。

以下是我需要做的各种查询的几个示例(这些是在MySQL中,但如果需要,我将在以后针对SQLite进行调整):

http://d.pr/n/h0mD

http://d.pr/n/ZVVx

所以这是我的问题:

  1. Core Data及其NSPredicates会让我做所有这些吗? (日期约束,if / else条件,加入,分组等)
  2. 如果这不可能(或者通过合理的努力可行),我可以使用像核心数据一样的FMDB 吗? (是的,我知道我必须要小心)
  3. 我期待您的见解。谢谢!

2 个答案:

答案 0 :(得分:5)

您不应将FMDB与Core数据一起使用。从技术上讲,你可以。但是你的应用可能会在某些时候中断。 Apple不保证架构可预测。核心数据是一种抽象,底层持久存储与核心数据断开连接。他们甚至在2013年的wwdc视频中提到了这一点。您可以使用NSPredicate,NSExpression生成您尝试获取的查询。您还可以对内存进行一些检查(如果可能)。我会查看您的查询,看看我是否可以生成

答案 1 :(得分:1)

核心数据不是数据库。它是一个对象持久性模型。如果您像标准数据库一样使用它,那么您最好使用FMDB。

Have a look here

我很难学到这一点。你不必。 =)