我有一个核心数据实体MediaAsset
。我有另一个名为UploadAttempt
,它跟踪我们将MediaAsset
上传到我们的中央服务器所做的所有尝试。我想从第一个MediaAsset
订购的数据存储区中提取UploadAttempt
个。
MediaAsset
有3 UploadAttempt
s,A,B和C. UploadAttempt
有一个attemptDate属性,我想为每个MediaAsset找到最早的UploadAttempt,并将其用作排序
我想创建一个NSSortDescript或类似的东西:
order by MediaAsset.uploadAttempts.attemptDate
其中attemptDate是该特定MediaAsset的最早的尝试日期。
这有意义吗?任何帮助表示赞赏。
(注意:假设我无法向MediaAsset添加其他属性。这已经是现有数据,我无法改变它。)
答案 0 :(得分:0)
如果我正确理解您的问题,以下内容应该有效。如果没有,请再次ping我,我们会一起理解并纠正它。
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entityDesc = [NSEntityDescription entityForName:@"UploadAttempt"
inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entityDesc];
NSError *error = nil;
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"date"
ascending:YES];
NSArray *sortDescriptors = [NSArray arrayWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
NSArray *dateSortedAttempts = [self.managedObjectContext executeFetchRequest:fetchRequest
error:&error];
NSSet* mediaAssets= [NSSet setWithArray:[items valueForKeyPath:@"@distinctUnionOfObjects.MediaAsset"]];