【发布时间】:2012-03-19 16:40:29
【问题描述】:
只是一个小问题:
我有一个与实体 Y 有一对多关系的实体 X
在 viewDidLoad 方法中,我获取所有 X 并按名称和升序对它们进行排序,它们显示在 tableView 中。
如果您在 tableView 中选择其中一个 X,则所有关系 Y 都将显示在第二个 tableView 中。 此提取的结果还包括每个 X 的所有关系 Y,因此我不必为 Y 进行额外提取 - 但这导致了我的问题: Y 的顺序是完全随机的(每次重新启动应用程序时也会发生变化) - 但我希望它们按日期排序(
这里是获取 - 代码
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Customer" inManagedObjectContext:managedObjectContext];
[request setEntity:entity];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"firstName" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[request setSortDescriptors:sortDescriptors];
NSError *error = nil;
NSMutableArray *mutableFetchResults = [[managedObjectContext executeFetchRequest:request error:&error] mutableCopy];
if (mutableFetchResults == nil) {
// Handle the error.
}
[self setCustomersArray:mutableFetchResults];
结果看起来像这样:
Entity X-1
attribute-x-1
attribute-x-2
relation-attribute
relation-entity-y-1
attribute-y-1
attribute-y-2
relation-entity-y-1
attribute-y-1
attribute-y-2
Entity X-2
attribute-x-1
attribute-x-2
relation-attribute
relation-entity-y-1
attribute-y-1
attribute-y-2
也许这是一个更好的例子:
Customer
name: Bert
age: 10
customerMeasureRealtions
Measure
score: 5
date: 10.10.2010
Measure
score: 9
date: 20.20.2000
Customer
name: Steve
age: 20
customerMeasureRealtions
Measure
score: 7
date: 07.07.2007
获取后,“客户”按“名称”排序。但是,如果我通过“客户”访问“措施”,“措施”的顺序是随机的,但我希望它们按“日期”排序。
用于访问度量的代码(“客户”是客户实体对象或模型), (“measuresForCustomer”是customerMeasureRealtions):
- (void)loadMeasureDataForCustomer:(Customer *)customer
{
NSSet *customerSet = customer.measuresForCustomer;
measuresArray = [NSMutableArray arrayWithArray:[customerSet allObjects]];
[measuresTable reloadData];
}
【问题讨论】:
-
请提供更多代码。什么是“dpo”?
-
dpo = do ;) 我添加了一些信息/代码
-
好的,你能告诉我们一些你如何访问这些措施的代码吗?
-
当然,我在问题末尾添加了它
标签: ios sorting core-data entity-relationship nssortdescriptor