jjzjj

ios - CoreData : Fetch and sort results in the order they were created, 不使用时间戳

coder 2023-09-24 原文

这是一个非常简单的问题。

我有一个使用本地文件初始化的 CoreData 数据库。 看起来像这样的 CoreData 架构:

Category -->> Objections -->> Responses -->> Evidence

("-->>"表示,有很多)

我正在使用 NSFetchedResultsController 从核心数据中检索对象。相当标准。

NSEntityDescription *entity = [NSEntityDescription entityForName:NSStringFromClass([OHObjection class])inManagedObjectContext:self.managedObjectContext];
    [fetchRequest setEntity:entity];

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"[suitable key]" ascending:YES];
NSArray *sortDescriptors = @[sortDescriptor];

[fetchRequest setSortDescriptors:sortDescriptors];

NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:@"category.objectionCategoryText" cacheName:nil];

每个“对多”关系都是有序的。

问题:是否可以在不使用时间戳或明确设置我自己的 ID 的情况下按创建顺序获取数据?

注意:我不反对使用时间戳或创建我自己的 ID,我只是想知道这是否可行。

最佳答案

来自Core Data Programming Guide :

How do I fetch objects in the same order I created them?

Objects in a persistent store are unordered. Typically you should impose order at the controller or view layer, based on an attribute such as creation date. If there is order inherent in your data, you need to explicitly model that.

所以是的,您必须使用时间戳或明确设置您自己的 ID。

关于ios - CoreData : Fetch and sort results in the order they were created, 不使用时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21996051/

有关ios - CoreData : Fetch and sort results in the order they were created, 不使用时间戳的更多相关文章

随机推荐