哪里不使用核心数据?是否可以将核心数据用作MySql等数据库?

时间:2015-09-08 18:58:16

标签: ios core-data sqlite

核心数据简单,高效,令人兴奋,如果我们知道在哪里使用,在哪里不

我一直在玩核心数据。

我想知道哪里不使用核心数据

问题很简单,让我们说,我想将核心数据用作真正的“数据库”,如MySql。

拥有主键,搜索,排序(包含一列或多列)等。

据我所知,我无法实现它。

对于“havingPredicate”,我找不到任何有用的文档或帮助。

选择使用核心数据代替DB是一种潜在的责任吗? 要么 如果有可能,是否有一个特定的“核心数据模型”可以在其中完成或至少可以完成大部分工作......(有不同的限制)?

1 个答案:

答案 0 :(得分:1)

Core Data提供了一些类似数据库的功能,但其API与使用原始SQL语句不同。例如,Core Data实体大致等同于SQL表,但它对关系的处理与SQL的工作方式有很大不同。它是否是“潜在责任”取决于您在应用中需要完成的任务。 Core Data被设计为一个允许直接读取和编写模型对象的系统,虽然它有一些类似于SQL的功能,但考虑SQL是一种很好的方法。

  

拥有主键,搜索,排序(包含一列或多列)等。

     

据我所知,我无法实现它。

核心数据使用自己独特的ID系统作为主键。 NSManagedObject的每个实例都有一个名为objectID的属性,它是唯一的。您可以添加自己的主键字段,但这取决于您确保唯一性。它通常没有必要,但它实际上取决于你需要完成什么。搜索和排序通过NSPredicateNSSortDescriptor内置。如果您发现这很困难或不可能,最好发布一个新问题,详细说明您尝试过的内容以及如何无法完成您所需的操作。

  

对于“havingPredicate”,我找不到任何有用的文档或帮助。

它通过NSPredicate提供与SQL相同的目的。语法不同,因此您可能需要咨询Apple的Predicate Programming Guide以查看其工作原理。举一个简单的例子,SQL片段HAVING SUM(SaleAmount) > 1000将通过类似@sum(saleAmount) > 1000)

的方式实现