0

我有一个核心数据实体,MediaAsset. 我有另一个调用UploadAttempt,它跟踪我们为将其上传MediaAsset到中央服务器所做的所有尝试。我想MediaAsset从第一个排序的数据存储中获取 s UploadAttempt

MediaAsset有 3UploadAttempt秒、A、B 和 C。UploadAttempt有一个尝试日期属性,我想为每个 MediaAsset 找到最早的 UploadAttempt 并将其用作排序。

我想创建一个 NSSortDescriptor 类似的东西:

order by MediaAsset.uploadAttempts.attemptDate其中,attemptDate 是该特定 MediaAsset 的最早尝试日期。

那有意义吗?任何帮助表示赞赏。

(注意:假设我无法向 MediaAsset 添加其他属性。这是已经存在的数据,我无法更改它。)

4

1 回答 1

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"]];
于 2013-10-24T03:54:56.833 回答