核心数据简单,高效,令人兴奋,如果我们知道在哪里使用,在哪里不。
我一直在玩核心数据。
我想知道哪里不使用核心数据。
问题很简单,让我们说,我想将核心数据用作真正的“数据库”,如MySql。
拥有主键,搜索,排序(包含一列或多列)等。
据我所知,我无法实现它。
对于“havingPredicate”,我找不到任何有用的文档或帮助。
选择使用核心数据代替DB是一种潜在的责任吗? 要么 如果有可能,是否有一个特定的“核心数据模型”可以在其中完成或至少可以完成大部分工作......(有不同的限制)?
答案 0 :(得分:1)
Core Data提供了一些类似数据库的功能,但其API与使用原始SQL语句不同。例如,Core Data实体大致等同于SQL表,但它对关系的处理与SQL的工作方式有很大不同。它是否是“潜在责任”取决于您在应用中需要完成的任务。 Core Data被设计为一个允许直接读取和编写模型对象的系统,虽然它有一些类似于SQL的功能,但考虑SQL是一种很好的方法。
拥有主键,搜索,排序(包含一列或多列)等。
据我所知,我无法实现它。
核心数据使用自己独特的ID系统作为主键。 NSManagedObject
的每个实例都有一个名为objectID
的属性,它是唯一的。您可以添加自己的主键字段,但这取决于您确保唯一性。它通常没有必要,但它实际上取决于你需要完成什么。搜索和排序通过NSPredicate
和NSSortDescriptor
内置。如果您发现这很困难或不可能,最好发布一个新问题,详细说明您尝试过的内容以及如何无法完成您所需的操作。
对于“havingPredicate”,我找不到任何有用的文档或帮助。
它通过NSPredicate
提供与SQL相同的目的。语法不同,因此您可能需要咨询Apple的Predicate Programming Guide以查看其工作原理。举一个简单的例子,SQL片段HAVING SUM(SaleAmount) > 1000
将通过类似@sum(saleAmount) > 1000)
。