gpt4 book ai didi

iphone - 核心数据 - 对作为关系的一部分获取的记录进行排序

转载 作者:行者123 更新时间:2023-11-28 22:25:03 25 4
gpt4 key购买 nike

我有以下实体....

人物
| --- 回顾

我检索了一个 Person 记录列表....然后我可以通过 Person.Reviews 直接引用评论记录(这很好而且很容易,而无需编写任何 NSFetch 语句。)

我的问题是如何按日期对评论进行排序(评论实体中有一个日期属性)?这样当我引用 Person.Reviews 时,它们是按日期顺序排列的吗?

我的临时修复是在获取之外对数组进行排序

NSArray *sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"startDate" ascending:YES]];

NSArray *reviewList;
reviewList = [[[NSArray alloc] initWithArray:[person.reviews allObjects]] sortedArrayUsingDescriptors:sortDescriptors];

非常感谢

最佳答案

假设您的意思是要获取给定人员的 Review 实体列表,按日期排序:

您可以使用 NSFetchRequestNSPredicateNSSortDescriptor 进行筛选的核心数据提取,并对结果进行排序。

例子:

NSManagedObjectContext *context = <#Get the context#>;

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Review"
inManagedObjectContext:context];
[fetchRequest setEntity:entity];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"person == %@", thePerson];
[fetchRequest setPredicate:predicate];

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"startDate"
ascending:YES];
NSArray *sortDescriptors = @[sortDescriptor];
[fetchRequest setSortDescriptors:sortDescriptors];

NSError *error;
NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&error];
if (fetchedObjects == nil) {
// Handle the error.
}

上面的代码假定您的 Review 实体有一个名为 startDate 的日期字段和一个名为 person 的字段,它是返回到该人的链接.

此代码运行后,fetchedObjects 包含按评论日期顺序排序的 Review 对象(并且只为感兴趣的人评论对象)。

更多信息,请阅读https://developer.apple.com/library/ios/documentation/DataManagement/Conceptual/CoreDataSnippets/Articles/fetching.html

关于iphone - 核心数据 - 对作为关系的一部分获取的记录进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19221601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com