【发布时间】:2012-08-22 03:38:07
【问题描述】:
看起来 NSSortDescriptor 应该是一个相当容易使用的类。
我在 CoreData 中存储了一个具有 NSDate 类型属性的实体,该属性适当地命名为 @"date"。我正在尝试将排序描述符应用于 NSFetchRequest 并且它似乎没有返回我希望的结果。
我希望的结果是简单地按时间顺序排列日期,而是按照它们添加到 CoreData 的顺序返回它们。
也许您可以提供指导?
参数“升序”控制排序吗?
一些代码:
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entityDesc = [NSEntityDescription entityForName:@"Data" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entityDesc];
[fetchRequest setFetchBatchSize:10];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"date" ascending:YES];
NSArray *sortDescriptors = [NSArray arrayWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
NSArray *fetchedObjects = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];
【问题讨论】:
-
老实说,我更改了实体的名称。这不是数据……但这不是重要的部分
-
输入是什么?输出是什么?
-
输入?它们是 NSDates,对属性类型是正确的。输出? NSDates 数组。我不确定如何回答您的问题
-
您的 fetchRequest 是正确的,是的,升序控制了排序顺序。您能否提供有关实体和结果的更多信息?
-
在我看来
sortedArrayUsingSelector:@selector(compare:)会(更)简单。
标签: objective-c sorting core-data nsfetchrequest nssortdescriptor