没有排序描述符的NSFetchRequest

Mus*_*afa 6 iphone core-data nssortdescriptor nsfetchrequest

我们不能在不提供NSSortDescriptor的情况下使用NSFetchRequest.我想要做的就是获取结果并按照创建顺序显示它们.有没有内置方法可以做到这一点?还是我必须创建一个新的"自动增量"字段?(在我看来,这与CoreData所代表的一切相悖).

Jas*_*oco 6

核心数据不保证订单的任何信息.您不必进行"自动增量"字段; 但是,您可以创建适当的属性.由于您显然关心创建日期,因此应将dateCreated属性添加到数据对象中.然后,按此排序.

您可以在托管对象的didAwakeFromInsert方法中轻松设置它.


Tec*_*Zen 6

听起来你正在考虑表格方面的核心数据,并期望应该像表格的行号一样进行自动排序.但是,Core Data不使用表,行或任何其他固定的线性数据结构.

没有内置的提取顺序,因为每个提取请求都非常特定于它有助于填充的视图的需求.NSFetchRequest需要排序描述符,因为它返回一个数组并需要一个排序描述符来将对象图中的无序管理对象转换为有序数组.

通常,对象图中没有托管对象的内置顺序,因为每个数据模型都有不同的结构化数据标准.例如,对于大多数模型,插入对象的时间序列是无关紧要的.为什么在每个托管对象中都建立一个时间戳,每个核心数据应用程序必须在每个托管对象只需极少数情况下才能使用?

如果时间序列是模型逻辑关系的重要部分,即它反映了数据模型模拟的真实对象,事件或条件,正如Jason Coco建议的那样,您应该为实体本身添加时间戳属性,以便实体对象将模仿自己创作的时间.