核心数据获取实体1并从变量中限制它

时间:2012-04-05 04:27:53

标签: ios core-data nsfetchrequest

很抱歉,如果我混淆了任何人,但我会尽力描述我的问题。

我有一个名为Document的实体和另一个名为Customer的实体 Document有一个名为CustomerID的属性,它是从Customer属性CustomerID分配的,它有一个updatedDate属性。

我想获取10个最新文档,但只获得最近的每个CustomerID。

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您希望从指定客户那里获得10份最新文档吗? 这很容易。

NSFetchRequest *request = [[NSFetchRequest alloc] init];
   request.entity = [NSEntityDescription entityForName:@"Document" inManagedObjectContext:managedObjectContext];//Specify the entity Name
   request.predicate = [NSPredicate predicateWithFormat:@"customerID = %@",customerID];//Specify the ID you need
   request.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"updatedDate" ascending:YES]];//Sorted by most recent ones
   request.fetchLimit = 10;//You'll get ten latest Documents
   NSError *error = nil;

 latestDocuments =  [managedObjectContext executeFetchRequest:request error:&error];

修改

正如我们发现的那样,任务是获取十个最新的文档,但每个客户只有一个,我真的认为没有办法以某种方式有效地执行此操作(我的意思是,如果没有IN查询,那将包含customerID's you have已经提取了),但是要向客户添加新的一对一关系 - latestDocument ,并与之相反,只需向文档发出请求,其中 isLatestToCustomer < / strong>不是零。